#include<stdio.h>
#include<stdlib.h>
typedef int INT32;
typedef unsigned int UINT32;
typedef unsigned char UCHAR8;
typedef char CHAR8;
typedef long long int LONG64;
typedef unsigned long long int ULONG64;
typedef double DOUBLE64;
typedef float FLOAT32;
void InsertSort(INT32 *a,INT32 n)
{
INT32 i ;
for(i = 1; i < n; i++)
{
INT32 temp = a[i];
INT32 j = i-1;
while(temp < a[j] && j>=0)
{
a[j+1] = a[j];
j--;
}
if(j != i-1)
a[j+1] = temp;
}
}
void BinarySearch(INT32 *a,INT32 low,INT32 high,INT32 data)
{
INT32 l = low;
INT32 h = high;
INT32 m = (l+h)/2;
while(l <= h)
{
if(a[m] == data)
{
printf("找到该元素,在第%d位",m+1);
return;
}
else if(a[m] > data)
{
h = m-1;
m = (l+h)/2;
}
else
{
l = m+1;
m = (l+h)/2;
}
}
printf("查找不到该元素\n");
}
int main(void)
{
INT32 a[100];
INT32 i = 0,n;
printf("input the arry:\n");
while(scanf("%d",&n) != EOF)
{
a[i] = n;
i++;
}
InsertSort(a,i);
printf("the sorted list:\n");
for(int j = 0; j < i; j++)
printf("%d ",a[j]);
printf("\ninput to search:\n");
scanf("%d",&n);
BinarySearch(a,0,i,n);
return 0;
}
直接插入排序与二分查找
最新推荐文章于 2022-12-31 11:26:33 发布