白話經典演算法系列筆記一氣泡排序

2021-06-21 13:07:47 字數 587 閱讀 2001

一直以來都想好好補補演算法的東西,正好看到it面試論壇中的白話經典演算法系列,覺得將以前的一些演算法再次熟悉下似乎不錯。所以就從它開始把。

我實現及注釋**:

#include using namespace std;

void swap(int &a,int &b)

//基礎版氣泡排序

void bubblesort1(int arr,int n)}}

}//設定標誌位版氣泡排序

void bubblesort2(int arr,int n)

}k--;

}}/*

再做進一步的優化。如果有100個數的陣列,僅前面10個無序,後面90個都已排好序且都大於前面10個數字,

那麼在第一趟遍歷後,最後發生交換的位置必定小於10,

且這個位置之後的資料必定已經有序了,記錄下這位置,第二次只要從陣列頭部遍歷到這個位置就可以了。

*///氣泡排序3

void bubblesort3(int a, int n)}}

}//列印陣列

void printarray(int arr,int n)

{ for(int i=0;i

白話經典演算法系列

堆排序與快速排序,歸併排序一樣都是時間複雜度為o n logn 的幾種常見排序方法。學習堆排序前,先講解下什麼是資料結構中的二叉堆。二叉堆的定義二叉堆是完全二叉樹或者是近似完全二叉樹。二叉堆滿足二個特性 1 父結點的鍵值總是大於或等於 小於或等於 任何乙個子節點的鍵值。2 每個結點的左子樹和右子樹都...

白話經典演算法系列一 冒泡演算法的實現 優化

設陣列長度為n。1 比較相鄰的前後二個資料,如果前面資料大於後面的資料,就將二個資料交換。2 這樣對陣列的第0個資料到n 1個資料進行一次遍歷後,最大的乙個資料就 沉 到陣列第n 1個位置。3 n n 1,如果n不為0就重複前面二步,否則排序完成。氣泡排序 公升序排列 target排序陣列 n個數需...

氣泡排序(重溫經典演算法系列)

單個元素時肯定是有序的 故首元素單獨有序,從 1,n 為待排元素所在的區間 i 控制 n 1輪冒泡 即執行一系列兩兩元素對比的操作 第 i 輪能夠選出第 i 大 或者小 的元素值,n 1輪 選出 n 1 個較大 或者小 值之後,整個序列即可有序 for int i 1 i n i 外層i 控制 n ...