(冒泡,選擇,插入,歸併,堆排,二分查詢)排序演算法

2021-08-08 14:20:39 字數 985 閱讀 9721

氣泡排序:每次把陣列中最大的數字沉入陣列的最低處;時間複雜度是o(n^2);

#include

using namespace std;

int main()

;int n = sizeof(a)/sizeof(int);

for(int i =0;ia[j+1])}}

for(int i =0;i快速排序:

快速排序的思想:

(1)選取乙個基準元素(一般選取最開頭或者最末尾)

(2)進行一趟排序,把記錄分為倆個模組,左邊這個記錄是比都比基準元素小,右邊這個基準元素都比大;

(3)基準元素就到了排好元素的位置;

(4)分別對這倆個模組用相同的方法遞迴排序,直到所有的數字有序;

插入排序:

#includeusing namespace std;

void swap(int & n,int &m)

int partion(int a,int low,int high)

a[j] = temp; }}

int main()

; int n = sizeof(a) / sizeof(int);

int low = 0;

int high = n - 1;

insertsort(a, n);

for (int i = 0; i2.折半插入排序

int binarysearch(int a,int n,int key)

else if(key > a[mid])

else

}return -1;

}

3.希爾排序

void insertsort(int a,int left,int right)

}}

scala實現快排,歸併,冒泡,二分查詢

快速排序使用分治的思想,選定乙個基準點,通過一趟排序將待排序的序列分為左右兩個部分,其中左邊的部分都比基準點要小,右邊的基準點都比基準點要大,之後在分別對左右兩邊的部分,按照相同的思想繼續切分,最終達到乙個有序佇列的目的 時間複雜度 o nlog n 空間複雜度 o log n def quicks...

冒泡,快排,插入,希爾,選擇,歸併演算法

演算法,根據資料的樣子,進行做計算。爭取在固有資料的基礎上,達到計算次數 記憶體占用最少的運算方式。現將集中演算法歸納如下 演算法名稱 演算法概要 冒泡挨個拿陣列的元素和後面的做比較,發現大小不對,則交換位置,這樣導致按照座標向後運算,座標資料是一定有序的,相對後面最大或最小 快排拿乙個陣列,向前查...

冒泡 選擇 插入 快排 歸併的實現

冒泡 var arr 29 45,51 68,72 97 外層迴圈,控制趟數,每一次找到乙個最大值 for var i 0 i arr.length 1 i console.log arr 2,4,5,12,31,32,45,52,78,89 插入 function loop arr arr j 1...