/*
* 插入排序在哪些情況下效率高?
* 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...