#include #include#include
#include
#define arraysize 10
intdata[arraysize];
void
initdata()
}void printdata(char *string
) printf("\n
");}void swap(int i,int
j)/*
直接插入排序。從第乙個元素開始,形成長度為1,2,3乃至n的有序陣列,
選取第n+1個元素插入到有序陣列中,直到最後乙個元素,從而形成有序排列的陣列
*/void directinsertsort(int data, int
length)
else
data[left+1] =temp;
index++;
}}}/*
氣泡排序。如其名,從第乙個元素開始,依次比較相鄰的兩個元素
並始終保證較大的元素在右側,從而通過一次次的排序將大元素放在右側小元素放在左側。
*/void bubblesort(int data, int
length)
}index--;
if(flag==-1
)
break
; }}/*
選擇排序。顧名思意,就是直接從待排序陣列裡選擇乙個最小(或最大)的數字,
每次都拿乙個最小數字出來,順序放入新陣列,直到全部拿完
*/void selectsort(int data, int
length)
}data[minindex] =data[index];
data[index] =min;
index++;
}}/*
快速排序
*/void quicksort(int data,int left,int
right)
data[i] = base
; quicksort(data,left,i-1
); quicksort(data,i+1
,right);
}}/*
希爾排序。在直接插入排序的基礎上增加了乙個增量。
*/void shellsort(int data,int
length)
data[j+gap] =temp;
}gap /= 2
; }}/*
歸併排序
*/ void merge(int data,int low,int mid,int
high)
else
}while(i <=mid)
while(j <=high)
for(k = 0,i = low;i <= high;k++,i++)
}void mergesort(int data,int low,int
high)
}int main(void
)
c語言排序演算法
很多朋友是以譚浩強老師編的 c語言教程 作為學習 c語言的入門教程的。書中涉及排序問題一般都以 冒泡法 和 選擇法 實現。為了擴大視野,增加學習程式設計的興趣,我參閱了有關書籍,整理了幾種排序法,寫出來同大家共勉。高手們不要笑,這篇文章是寫給出學者的,而且我自己也是只菜鳥,雖然內容陳舊,但值得初學者...
c語言排序演算法
c語言排序演算法 非穩定的排序演算法 選擇排序 快速排序 希爾排序 堆排序 穩定的排序演算法 氣泡排序 插入排序 歸併排序和基數排序是穩定的排序演算法。讓我們先定義乙個整型陣列a n 下面用五種方法對其從小到大排序。1 冒泡法 冒泡法大家都較熟悉。其原理為從a 0 開始,依次將其和後面的元素比較,若...
C語言排序演算法
1.插入排序 一般來說,插入排序都採用in place在陣列上實現。具體演算法描述如下 從第乙個元素開始,該元素可以認為已經被排序 取出下乙個元素,在已經排序的元素序列中從後向前掃瞄 如果該元素 已排序 大於新元素,將該元素移到下一位置 重複步驟3,直到找到已排序的元素小於或者等於新元素的位置 將新...