氣泡排序:每次把陣列中最大的數字沉入陣列的最低處;時間複雜度是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...