/*
Name:
Copyright:
Author:
Date: 22-12-08 07:52
Description:
有壹個已經排好的數組,要求輸入15按原來的排序規律將它插入在數組中.註:原數組為:2,3,7,8,9,10,13,21,24,27
*/
#include<iostream>
using namespace std;
int Insert(int a[], int len, int data);
int main()
{
const int MAX = 100;
int a[MAX] = {2,3,7,8,9,10,13,21,24,27};
int len = 10;
for (int i=0; i<len; i++)
{
cout << a[i] << ' ';
}
cout << endl;
len = Insert(a, len, 15);//插入元素15,返回新的數組長度
for (int i=0; i<len; i++)
{
cout << a[i] << ' ';
}
cout << endl;
system("pause");
return 0;
}
int Insert(int a[], int len, int data)
{
int left, right, mid;
left = 0; right = len - 1;
while (left <= right)
{
mid = (left + right) / 2;
if (a[mid] <= data)
left = mid + 1;
else
right = mid - 1;
}
if (a[left] <= data)
left++;
for (int i=len-1; i>=left; i--)
a[i+1] = a[i];
a[left] = data;
return len + 1;
}