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

2025-11-06 12:02:00

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);

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢