每次排序將排序範圍內最小的值調換位置到最前面.
①雙指標的應用
#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...