您的位置:首页 > 其它

有序数组的查询

2015-11-08 20:15 330 查看
//有序数组的查询:

#include<iostream>

#include<string>

using namespace std;

void insert_partition(int *buff, int n)

{

int i;

int j;

int temp;

for ( i = 2; i < n - 1; i++)

{

int temp = buff[i];

j = i - 1;

while (buff[j]>temp)

{

buff[j + 1] = buff[j];

j--;

}

buff[j + 1] = temp;

}

}

int binary_search(int *buff, int n, int value)

{

int high;

int low;

int mid;

high = n - 1;

low = 0;

while (low <= high)

{

mid = (high + low) / 2;

if (buff[mid] == value)

return mid;

else

if (buff[mid] < value)

low = mid + 1;

else

high = mid - 1;

}

return -1;

}

//测试程序:

int main()

{

int buff[] = { 1, 6, 5, 2, 23, 54, 32, 55 };

int num;

int interger;

int place;

num = sizeof(buff)/sizeof(buff[0]);

insert_partition(buff, num);

cout << "please enter the integer you want to search" << endl;

cin >> interger;

place=binary_search(buff, num, interger);

cout << "它所在" << place << " ";

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: