折半插入排序的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);

  • 用音乐调解底落的情绪
  • 高中物理-相对运动,站在高角度解决问题
  • 尿布疹的正确处理方式
  • PPT自动播放怎么办
  • 大学生如何实现自我成长
  • 热门搜索
    短期旅游保险 西雅图旅游 西安市旅游景点 沧州旅游景点 云南旅游图 安康旅游景点 河源旅游景点大全 这个季节去哪旅游最好 国内旅游公司 武汉旅游攻略三日游