排序演算法總結 1

2021-06-26 20:48:19 字數 1019 閱讀 2469

插入排序:

穩定最優時間複雜度:o(n)       此時數列順序排列

最差時間複雜度:o(n^2)   此時數列逆序排列

插入排序的思想:固定乙個元素a,分別比較a之前的元素,如果a之前的元素比a大,則元素後移,將a插入比a小的元素後面。

要理解插入排序,實際上遞迴和不遞迴的思想是個相反的過程,遞迴的最後一層相當於非遞迴迴圈的第一層

遞迴版的插入排序:

#include#includevoid insert(int *a,int p,int q)

a[j+1]=key;

}void recursive_insertsort(int *a,int p,int q)

; int b[10];

int i,j,tem;

for(i=1;i<10;i++)

a[j+1]=tem;

} for(i=0;i<10;i++)

system("pause");

}

氣泡排序:

穩定最優時間複雜度:o(n^2)   

最差時間複雜度:o(n^2)   

氣泡排序演算法的思想是每一次迴圈分別讓i...n中的最小值到通過交換到達i點。

遞迴版氣泡排序演算法:

#include#includevoid insert(int *a,int p,int q)	}}

void recursive_bubblesort(int *a,int p,int q)

} tem=a[min];

a[min]=a[i];

a[i]=tem; }}

int main()

; int b[10];

int i,j,tem;

selectsort(a,0,10);

for(i=0;i<10;i++)

system("pause");

}

排序演算法總結(1) 氣泡排序

公升序排列 從第乙個元素開始,對陣列中兩兩相鄰的元素比較,將值較小的元素放在前面,值較大的元素放在後面,一輪比較完畢,乙個最大的數沉底成為陣列中的最後乙個元素,一些較小的數如同氣泡一樣上浮乙個位置。n個數,經過 n 1輪比較後完成排序。如下 public class bubblesort priva...

排序演算法總結 1 選擇排序

選擇排序是最簡單的排序演算法。考慮儲存在陣列a中的n個數 首先找出a中最小的元素並將其與a 0 交換。接著找到a 1 到a n 1 中最小的數並與a 1 交換。對a中前n 1個數採用同樣的操作。for i 0 to a.length 1 j findmin a,i 找到a i,end 中最小元素的索...

排序演算法總結 1 插入排序

主要分為插入排序 交換排序 選擇排序 歸併排序 計數 也有叫分配 排序。一 插入排序。插入排序,就是每次將乙個待排序的物件,插入到乙個有序的資料序列中,得到乙個新容量加1的資料有序序列。如此往復。可分為直接插入排序 二分法插入排序 希爾排序。不同插入方法的區別就是尋找插入位置的方法不同。1 直接插入...