選擇排序 , 插入排序 , 氣泡排序

2021-07-27 01:27:06 字數 2004 閱讀 4536

**編寫:

#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...