1,直接插入排序
(1)演算法思想
每趟將乙個待排序的元素作為關鍵字,按照起關鍵字值的大小插入到已經排好的部分序列的適當位置,直到插入完成。
比如說遞增順序排列:
初始序列:(48)36,68,72,12,02
第1趟 (36,48)68,72,12,02
第2趟 (36,48,68)72,12,02
第3趟 (36,48,68,72)12,02
第4趟 (12,36,48,68,72)02
第5趟 (02,12,36,48,68,72)
排序結果: (02,12,36,48,68,72)
(2)**如下
void insersort();
for(int i=1;i=0&&a[j]>key)
a[j+1]=key;//找到插入位置,將key中的元素插入
}
2,氣泡排序
(1)演算法思想
首先第乙個記錄和第二個記錄比,如果第乙個大,則而這交換,否則不交換;然後第二個記錄和第三個記錄比,同上。
最終最大的被交換到最後,一趟氣泡排序完成
上杰寶:
(2)**如下
void bubblesort(int a)
}if(flag==0)
} }
資料結構之常見的排序演算法2
繼續快速排序,簡單選擇排序和堆排序 一,快速排序 演算法思想 a,先從乙個數列中取出乙個數作為基數 b,分割槽過程,將比這個數大的放在右邊,小於等於這個數的放到左邊 c,再對左右區間重複第二步,直到各個區間只剩乙個數 2,void quicksort ints,int l,int r if i 1,...
資料結構 幾種常見的排序演算法
下圖是我掌握的一些排序演算法,我將他們做了分類,當然,排序演算法遠不止這些。a 演算法思想 假設第乙個數是有序的,那麼把後面的數拿出來插入到這個有序數的合適位置,假設是公升序 比第乙個數小則向後移動第乙個數,將數插入到第乙個數的前面 插入後有序區間擴大為兩個,依次向後,不斷拿出新的數插入到有序區間,...
資料結構 常見的7種比較排序演算法1
直接插入排序 insert sort 1 演算法描述 該演算法是一種簡單直觀的是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序在實現上只需用到o 1 的額外空間的排序,因而在從後向前掃瞄過程中,需要反覆把已排序元素逐步向後挪位為最新元素提供插入空間。2 步...