資料結構
#include<stdio.h>
#include<string.h>
void DataMov(int num[],int count,int k)
{
for (int i=count-1; i>=k; i--)
{
num[i+1]=num[i];
}
}
void DataPrint(int num[],int count)
{
for (int i = 0; i < count; i++)
{
printf("%d ",num[i]);
}
printf("\n");
}
int main(int argc, char const *argv[])
{
int num[15]={2,4,7,11};
int x=5;
int count;
for (count = 1; num[count]>num[count-1]; count++);
printf("count=%d\n",count);
DataPrint(num,count);
if (x < num[0]) {
DataMov(num,count,0);
num[0]=x;
count++;
}
else if (x > num[count-1]) {
num[count]=x;
count++;
}
else {
int left=0,right=count-1;
int mid=(left+right)/2;
int i=0;
while (right-left!=1)
{
mid=(left+right)/2;
if (x>num[mid]) left=mid;
else right=mid;
}
DataMov(num,count,right);
num[right]=x;
count++;
}
DataPrint(num,count);
return 0;
}