排序和二分法查找的代码
- 简单的实例代码
int fun_search(int *array,int size,int aim)
{
int min,max,mid;
min = 0;
max = size-1;
while(max-min>1){
mid = (min+max)/2;
if(array[mid] < aim)
min = mid;
else
max = mid;
}
printf("min:%d, max:%d,mid:%d\n",min,max,mid);
return array[mid];
}
int array_sort(int *array, int size)
{
int i = 0,j = 0,min,visit;
for(i = 0;i < size;i++){
min = array[i];
for(j = i;j < size;j++){
if(min > array[j]){
visit = min;min = array[j];array[j] = visit;
}
}
array[i] = min;
}
return 0;
}
int main()
{
int array[20];
for(int i = 0;i<20;i++){
array[i] = rand();
printf("%d\n", array[i]);
}
printf("\n");
array_sort(array,20);
for(int i = 0;i < 20;i++){
printf("%d\n", array[i]);
}
printf("aim:%d, find:%d\n", array[18], fun_search(array,20,array[18]));
return 0;
}