折半插入排序的c语言实现方式

时间:2026-02-14 00:57:02

1、写一个折半插入排序法的函数名,包含参数。

int TwoSort(int * ListData,int ListLength);

2、写一个循环,在循环中应用折半插入排序。数组中变换二次区间方法来实现折半插入法:

int TwoSort(int * ListData,int ListLength)

{

int i = 0;

int j = 0;

for(i=1;i<=length;i++)

{

int tmp = ListData[i];

int low = 0;

int hight = i-1;

while(low <= hight)

{

mid = (low+hight)/2;

if(tmp > ListData[mid])

low = mid+1;

else

hight = mid-1;

}

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

ListData[j+1]=ListData[j];

r[low]=tmp;

}

return 0;

}

折半插入排序的c语言实现方式

3、对编好的程序进行测试,得出测试结果:

#include <stdio.h>

int main()

{

int TestData[5] = {34,15,6,89,67};

int i = 0;

printf("排序之前的结果\n");

for(i = 0;i<5;i++)

printf("|%d|",TestData[i]);

int retData = TwoSort(TestData,5);

printf("排序之后的结果:\n");

for(i = 0;i<5;i++)

printf("|%d|",TestData[i]);

return 0;

}

折半插入排序的c语言实现方式

折半插入排序的c语言实现方式

1、可以减少比较的次数,折半插入要比直接插入排序要快一点,因为它改善了,算法中比较的次数,它的时间复杂度是:n*(log2(n));

这个算法要比直接插入排序要求,但是时间复杂度的笼统的算法是和直接一样的O(n*n);

© 2026 长短途
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com