插入排序:
穩定最優時間複雜度: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 直接插入...