資料結構二 排序(插入排序和希爾排序)

2021-10-03 07:12:58 字數 1880 閱讀 8404

/*

* 插入排序在哪些情況下效率高?

* 1.插入的序列基本有序

* 2.序列較小的情況下

*/#include

#include

#include

#include

#define max 10

//獲取時間,毫秒

long

gettime()

//列印

void

printarr

(int

* arr,

int len)

}//插入排序

void

insert_sort

(int

* arr,

int len)

//迴圈完以後 2 4 8; temp=0 j在-1位

arr[j +1]

= temp;}}

}int

main

(void

)printf

("插入排序前:");

printarr

(arr, max)

;long t_start =

gettime()

;insert_sort

(arr, max)

;long t_end =

gettime()

;printf

("\n");

printf

("插入排序後:");

printarr

(arr, max)

;printf

("\n");

printf

("插入排序共花費%ld毫秒\n"

, t_end - t_start)

;}

/*

* 插入排序在哪些情況下效率高?

* 1.插入的序列基本有序

* 2.序列較小的情況下

*/#include

#include

#include

#include

#define max 10

//獲取時間,毫秒

long

gettime()

//列印

void

printarr

(int

* arr,

int len)

}//希爾排序

void

shell_sort

(int arr,

int len)

//迴圈完以後,k=k-increment;如k此處就在-1

//將temp放入空格' ':0 2 4 6 8

arr[k + increment]

= temp;}}

}}}int

main

(void

)printf

("希爾排序前:");

printarr

(arr, max)

;long t_start =

gettime()

;shell_sort

(arr, max)

;long t_end =

gettime()

;printf

("\n");

printf

("希爾排序後:");

printarr

(arr, max)

;printf

("\n");

printf

("希爾排序共花費%ld毫秒\n"

資料結構 23 排序篇之插入排序

一趟直接插入排序的基本思想 將記錄l.r i 插入到有序子串行l.r 1.i 1 中,使記錄的有序序列從l.r 1.i 1 變為l.r 1.i 完成這個 插入 分三步進行 1 查詢l.r i 在有序子串行l.r 1.i 1 中的插入位置j 2 將l.r j.i 1 中的記錄後移乙個位置 3 將l.r...

02 排序 插入排序

基本原理 直接插入法思想 1.在原始資料中,將第乙個資料作為已排序的資料序列 2.從陣列中獲取下乙個元素,在已經排序好的元素中從後向前掃瞄,並判斷該元素與已排列好的的大小 3.若排序序列的元素大於新元素,則將該元素移到下一位置 4.重複步驟三,直到找到已排序的元素小於或者等於行元素的位置 5.將新元...

(二)排序 折半插入,希爾,與氣泡排序

折半插入 include includeint a 16 輸出已排序陣列 void print printf n 折半插入排序公升序排列 void binaryinsertsortup else 確定好位置後,將位置之後的資料後移,插入待排序資料 for j i 1 j high j a j 1 x...