基本資料結構 插入排序

2021-06-20 22:32:18 字數 1464 閱讀 6678

/*************************************

* * filename: insertsort.c

* function: insert sort

* author: kevin

* date: 2014-03-12

* version: 1.0

* *************************************/

/*************************************

插入排序的基本思想:

每一趟將乙個待排序的記錄,按其值的大小插入到

已經排序的部分序列中適當位置,直到全部插入完成。

詳細描述:

假設記錄存放在r[0..n-1]之中,r[0..i-1]是已

排好序的記錄,r[i..n-1]是未排好序的記錄。

插入排序將r[i]插入到r[0..i-1]之中,使r[0..i]

成為有序的。插入r[i]的過程就是完成排序中的一趟。

隨著有序區的不斷擴大,使r[0..n-1]全部有序。

*************************************/

#include #define sort_debug 1

#if sort_debug

void print_array(int a, int n, int index)

printf("\n");

}#else

void print_array(int a, int n)

printf("\n");

}#endif

void insert_sort(int a, int n)

else

#endif

temp = a[i];

for(j = i - 1; j >= 0; j--)

a[j+1] = temp;

}#if sort_debug

printf("第%d次排序 :[", i - 1);

print_array(a, n, i - 1);

#endif

}int main(int args, char *argv)

; int n = sizeof(a)/sizeof(a[0]);

#if !sort_debug

printf("---------------排序前------------------\n");

print_array(a, n);

#endif

insert_sort(a, n);

#if !sort_debug

printf("---------------排序後------------------\n");

print_array(a, n);

#endif

return 0;

}

資料結構 插入排序

演算法中經常會用到各種各樣的演算法,比較簡答的思想就是氣泡排序,一般剛開始程式設計時遇到排序問題時,會很容易想到冒泡排,氣泡排序是通過兩輛比較數值,從而將數字移動到開始或者末尾的位置,反覆重複這個過程從而就達到了排序的目的。其時間複雜度大概是 n2 還有一種比較常用的插入排序,其思想與氣泡排序比較類...

資料結構 插入排序

一 直接插入排序 1 直接插入排序的演算法思想 r i 的鍵值ki與r 0 r i 1 的鍵值依次比較 從後往前比 找到r i 應插入的位置,並把從該位置開始的記錄後移乙個位置,把r i 插入到找到的插入位置,完成一趟直接排序 重複選r i 1 r n 完成上述操作,直到排序完畢 注 為什麼要從後往...

資料結構 插入排序

插入排序的基本思想是 每步將乙個待排序的物件,按其關鍵字大小,插入到前面已經排好序的一組物件的適當位置上,直到物件全部插入為止。簡言之,邊插入邊排序,保證子串行中隨時都是排好序的。新元素插入到 在已形成的有序表中線性查詢,並在適當位置插入,把原來位置上的元素向後順移。關鍵字序列t 13,6,3,31...