資料結構考研 演算法直接插入排序 C語言實現

2021-08-26 02:24:02 字數 1461 閱讀 4880

對一維陣列的直接插入排序,過程函式化。

直接插入排序就是將某乙個元素與順序表中元素進行比較,然後插入到相應的位置,使整個順序表處於有序狀態。

對於插入排序,有三種方法:1.  直接插入排序2. 二分插入排序3.希爾排序

// 排序函式

int insertsortfun(int array,int length)

array[j]=temp; //當前位置的原元素已往後移,把a元素填入}}

(1)「比較」序列中兩個關鍵字的大小;(2)「移動」記錄。最好的情況(關鍵字在記錄序列中順序有序):

「比較」的次數:

「移動」的次數:

最壞的情況(關鍵字在記錄序列中逆序有序):

「比較」的次數:

「移動」的次數:

最壞情況下(輸入資料是逆有序的) tw(n)=o(n2)

平均情況下,耗時差不多是最壞情況的一半 te(n)=o(n2)

減少元素的比較次數

減少元素的移動次數

//  完整c**

#include #include #define arraysize 5

int insertsortfun(int array,int length)

array[j]=temp; //當前位置的原元素已往後移,把a元素填入

}}void printarray(int array)

int main(); //初始化陣列

insertsortfun(array,arraysize); //呼叫排序函式

printarray(array); //列印陣列,進行輸出

C 資料結構 直接插入排序

include typedef int infotype define n 8 假設的檔案長度,即待排序的記錄數目 typedef int keytype 假設的關鍵字型別 typedef struct rectype typedef rectype seqlist n 1 seqlist為順序表型...

C 資料結構 直接插入排序

include define n 12 using namespace std 將46,74,16,53,14,26,40,53,86,65,27,34從小到大排序 直接插入排序方法 基本思想 依次從待排序數列中取出乙個元素,跟前面已經排序好的有序數列從後往前比較後,插入到有序數列的適當位置 voi...

資料結構 直接插入排序

直接插入排序 include include typedef struct int elem int length sqlist void initsqlist sqlist l int i printf 請輸入元素個數 scanf d l length l elem int malloc size...