排序演算法合集

2021-09-26 02:57:06 字數 1469 閱讀 4693

每次排序將排序範圍內最小的值調換位置到最前面.

①雙指標的應用

#include #include using namespace std;

void bubblesort(vector& s)

}}int main()

; bubblesort(s);

for(int i=0;i<(int)s.size();i++)

cout<②**優化:

當待排序序列為時,除了第一和第二的關鍵字需要交換外,別的都是正常順序,當時①中的演算法任然將每個迴圈執行一次,很多餘,當i=1時已經對其他元素做了比較。所以我們採用標誌位的方法來優化它。

可以舉例自己推算理解,當某一次排序沒有執行位置交換時,表明已經排序完成.

#include #include using namespace std;

void bubblesort(vector& s)}}

}int main()

; bubblesort(s);

for(int i=0;i<(int)s.size();i++)

cout《思想:每次選擇關鍵字中最小的記錄,並和第i位交換

#include #include using namespace std;

void selectsort(vector& s)

if(i!=min)

swap(s[i],s[min]);

}}int main()

; selectsort(s);

for(int i=0;i<(int)s.size();i++)

s[j] = e;

}}int main()

; insertsort(s);

for(int i=0;i<(int)s.size();i++)

a[j] = insertnum;

}for(auto it:a)

;int n = array.size();

shellsort(array, n);

/*for(auto it: array)

//對每乙個子二叉樹進行大根堆構建

void heapify(vector& tree,int n,int i)//從上往下,i為父節點進行堆排序

if(c2tree[max])

if(max != i) }

//自底向上構建大根堆

void build_heap(vector& tree,int n)

}void heap_sort(vector& tree,int n)

}int main()

int n = tree.size();

heap_sort(tree,n);//堆排序

int i;

for(int i = 0;i6.歸併排序

7.快速排序

排序演算法合集(Java)

public static void bubblesort int a 氣泡排序的時間複雜度為o n 2 是穩定的演算法 2.快速排序 public static void quicksort int a,int l,int r a i x quicksort a,l,i 1 quicksort a...

經典排序演算法合集

前言 作為乙個畢業季的狗子,在已經到來的秋招面前可謂是瑟瑟發抖。在海投簡歷的過程中,一次又一次的筆試,一次又一次的涼涼早就見怪不怪了。但是排序演算法出現的頻率真的比較大,所有現在做乙個學習及總結,應對接下來的筆試和面試 v 首先來乙個總的介紹,基本排序演算法到底有哪些,不說了,直接上圖 總結一下 平...

C 實現排序演算法合集

氣泡排序 相鄰對比 template void bubblesort elementtype arr,int n 選擇排序 每次選出最大數從後往前排 template void selectsort elementtype a,int n tmp a n 1 i a n 1 i a maxindex...