(以下各法均以從小到大排序為例,定義len為陣列array的長度)
原理:比較相鄰元素的大小,對於每次迴圈,按排序的規則把最值移向陣列的一端,同時迴圈次數依次減少。
c**實現
1.原理:先在未排序的陣列中找出最值,通過交換將其放在陣列第一位,然後再從剩餘的未排序陣列中找到另乙個最值,將其放在已排序陣列的末尾(第二次找到該最值後將其放在陣列第二位)。以此類推,直到整個陣列排完序。
2.c**實現
void select_sort(int arr,int len)
while(i!=mid+1)
new_arr[k++]=arr[i++];
while(j!=right+1)
new_arr[k++]=arr[j++];
for(i=left;i<=right;i++)
arr[i]=new_arr[i];
}void merge_sort1(int arr,int new_arr,int left,int right)
}
C語言實現幾種常見排序演算法
worker.c created on 2010 7 1 author panfei include void swap int x,int y 插入排序 公升序 void insertsort int arr,int size arr j 1 to insert 選擇排序 降序 void sele...
C語言實現幾種常見排序演算法
氣泡排序最好的時間複雜度為 o n 氣泡排序總的平均時間複雜度為 o n 2 氣泡排序演算法的原理如下 1.比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。2.對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。3.針對所有的元素重複以上的步驟,除...
幾種常見排序演算法的c語言實現
1 冒泡法1 其原理為從a 0 開始,依次將其和後面的元素比較,若a 0 a i 則交換它們,一直比較到a n 同理對a 1 a 2 a n 1 處理,即完成排序。cpp view plain copy void bubble int a,intn 2 冒泡法2 冒泡法還有第二種形式,或者叫沉底法也...