排序演算法——直接插入排序
基本思想
直接插入排序是一種最簡單的排序方法,它的基本思想是:初始時,有序表有一個元素,而無序表中有n-1個元素,每次進行排序時將無序表的第一個元素插入到有序表的適當位置,重複n-1次完成排序
舉個例子:
升序排列
對於上面這個陣列來說,我們的有序表中有8這個元素,然後將無序表中的6插入到有序表中
,比較8和6兩個元素然後交換。
然後將9插入到有序表中,發現此時是最大的元素於是插入到8的後面。
然後將12插入到有序表中,發現此時是最大的元素於是插入到12的後面。
然後將1插入到有序表中,發現此時1比12小,交換1和12。
此時1比9小,交換1和9。直到1排到最小的位置
程式碼實現如下:
void Math_insertSort(int data[],int length)
{
int i, j, t;
for (i = 0; i < length - 1; i++)
{
t = data[i + 1];
j = i;
while (j > -1 && t < data[j])
{
data[j+1] = data[j];
j--;
}
data[j + 1] = t;
}
}
相關文章
- 排序演算法__直接插入排序排序演算法
- 排序演算法:直接插入排序排序演算法
- 排序演算法-直接插入排序排序演算法
- 直接插入排序演算法排序演算法
- #排序演算法#【2】直接插入排序、希爾排序排序演算法
- 【排序演算法動畫解】直接插入排序排序演算法動畫
- 三種插入排序 直接插入排序,折半插入排序,希爾排序排序
- 直接插入排序排序
- 直接插入排序法排序
- 演算法學習之直接插入排序(java)演算法排序Java
- 04資料結構排序演算法之直接插入排序資料結構排序演算法
- 排序演算法——插入排序排序演算法
- 【筆記】直接插入排序筆記排序
- 直接插入排序java描述排序Java
- 程式猿修仙之路--演算法之直接插入排序演算法排序
- 希爾排序使用直接插入排序、二分插入排序的C++程式碼實現演算法排序C++演算法
- 排序演算法__折半插入排序排序演算法
- 經典演算法之直接插入排序及其優化演算法排序優化
- 【演算法】插入排序演算法排序
- 筆試之排序-直接插入排序、氣泡排序、快速排序筆試排序
- PHP 排序演算法之插入排序PHP排序演算法
- 排序演算法之折半插入排序排序演算法
- 【資料結構】直接插入排序資料結構排序
- 排序演算法 - 快速插入排序和希爾排序排序演算法
- 排序演算法:插入排序演算法 PHP 版排序演算法PHP
- 常用演算法-插入排序演算法排序
- 淺解前端必須掌握的演算法(三):直接插入排序前端演算法排序
- 排序演算法入門之「插入排序」排序演算法
- 【No.16異常的直接插入排序】排序
- 實時插入排序演算法排序演算法
- 排序演算法(氣泡排序,選擇排序,插入排序,希爾排序)排序演算法
- 排序演算法(3)插入排序(Insertion Sort)排序演算法
- Java常見排序演算法之插入排序Java排序演算法
- 排序演算法之「插入排序(Insertion Sort)」排序演算法
- 排序演算法:二分插入排序排序演算法
- 排序演算法——二分插入排序排序演算法
- 畫江湖之演算法篇【排序演算法】插入排序演算法排序
- 畫江湖之演算法篇 [排序演算法] 插入排序演算法排序