折半插入排序

折半插入排序

#include <iostream>

using namespace std;

void biinsert_sort(double p[],double x);

void main()

{

double arr[12]={0,1,2,3,4,5,6,7,8,9,10,0};

cout<<"输入要插入的数: ";

double x;

cin>>x;

biinsert_sort(arr,x);

for (int i=0;i<=11;i++)

{

cout<<arr[i]<<endl;

}

}

void biinsert_sort(double p[],double x)

{

p[0] = x;

int low = 1,high = 10;

while(low<=high)

{

int mid = (low+high)/2;

if (p[0]<p[mid])

high = mid-1;

else

low=mid+1;

}

for (int j=10;j>high;j--)

p[j+1] = p[j];

p[j+1] = p[0];

}

试一下这段程序满足你要求吗,数组arr[0]不用,从arr[1]开始排的。

精选文章

相关文章

粤ICP备17098710号 微点阅读