**編寫:
#include
void println(int
array, int len)
//列印給定長度的陣列
printf("\n");
}void swap(int
array, int i, int j)
//交換陣列中兩個位置的元素
void selectionsort(int
array, int len) // o(n*n)
//對陣列進行選擇排序,時間複雜度為o(n^2)
**編寫:
#include
void println(int
array, int len)
//列印陣列
printf("\n");
}void insertionsort(int
array, int len) // o(n*n)
//插入排序演算法,比較的次數少了一點
**編寫:
#include
void println(int
array, int len)
//列印陣列
printf("\n");
}void swap(int
array, int i, int j)
//交換兩個元素
void bubblesort(int
array, int len) // o(n*n)
//氣泡排序演算法 }}
}int main()
; int len = sizeof(array) / sizeof(*array);
println(array, len);
bubblesort(array, len);
println(array, len);
return
0;}
選擇排序,插入排序以及氣泡排序的演算法思想簡單,且演算法的時間複雜度同為o(n2)量級。
這3種排序演算法的排序結果都是穩定的。
氣泡排序,選擇排序,插入排序
氣泡排序,選擇排序,插入排序 小規模的檔案以及基本有序的檔案,插入排序的效能比快速排序的效能更為有效一些,實際上,插入排序通常也做快速排序實現的一部分。1 氣泡排序 packagedatastrut public classbubblesort public voidinsert longvalue...
氣泡排序 插入排序 選擇排序
氣泡排序是每輪比較未排序部分,從第乙個元素開始找最值,比較相鄰數字,依次往後推移,最終將最值置於最右。假設有n個數,外迴圈迴圈n 1遍,內迴圈是n 1在減去當前是第幾次外迴圈。void bubble sort mytype a,int n n為陣列長度 插入排序是從第二個元素開始快取,然後向前比較,...
氣泡排序 插入排序 選擇排序
從起始索引開始,每次和後面元素的比較,如果比後面大就交換 每完成一次遍歷,最後乙個一定最大,所以第二只用遍歷到倒數第乙個,以此類推 優化 如果在一次遍歷過程中沒有發生交換,說明排序完成,直接退出。t n o n int a 100 i,j,n 索引從1開始 int flag 0 是否發生交換 for...