排序演算法解析編碼

2021-08-30 02:48:23 字數 431 閱讀 1922

排序演算法解析編碼

#一家人就是要整整齊齊的,所以即使有些演算法比較簡單,我也要把他們碼出來。

1,氣泡排序

氣泡排序,輕的往上浮,重的往下沉,遍歷一遍陣列即可。時間複雜度為o(n*n)

void bubble_sort(int *a,int length)

int i=start;

int j=end;

int temp=a[i];

while(ia[i]) i++;

if(istart)

if(i3,插入排序

將單個資料插入到有序資料裡是最簡單的哦

void insert_sort(int *a,int length)

a[j+delta]=temp;

} }}`

堆排序演算法解析

堆排序是利用堆的性質進行的一種選擇排序。下面先討論一下堆。11.堆堆實際上是一棵完全二叉樹,其任何一非葉節點滿足性質 key i key 2i 1 key i key 2i 2 或者key i key 2i 1 key key 2i 2 即任何一非葉節點的關鍵字不大於或者不小於其左右孩子節點的關鍵字...

堆排序演算法解析

首先來引入乙個例子 如何使用選擇排序?肯定是每一次遍歷然後把大的放到最後面。當然,前面也可以 我感覺堆排序其實和選擇差不多。堆排序也是每次取出最大值,然後把最大值放後面 但是想學會堆排序,首先要知道什麼是堆 堆的定義 邏輯上 乙個完全二叉樹 物理上 借助向量實現 為什麼能用乙個向量來間接的弄乙個完全...

快速排序演算法解析

一趟快速排序的演算法是 1 設定兩個變數i j,排序開始的時候 i 0,j n 1 2 以第乙個陣列元素作為關鍵資料,賦值給key,即key a 0 3 從j開始向前搜尋,即由後開始向前搜尋 j 找到第乙個小於key的值a j 將a j 和a i 互換 4 從i開始向後搜尋,即由前開始向後搜尋 i ...