#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 500
void sort(int *);
int fond(int *, int, int, int);
int main () {
int arr[MAX], fon;
srand(time(0));
for (int i =0; i < MAX; ++i) arr[i] = rand()%1000;
sort(arr);
fon = (rand() % 1000) / 2;
printf("
查找:%d
%d
", fon, fond(arr, fon, 0, MAX)); // 找到返回排序后的位置,未找到返回-1
return 0;
}
int fond (int *arr, int s, int left, int right) {
if (left > right) return -1;
int mid = (left + right) / 2;
if(arr[mid] == s) return mid;
arr[mid] > s ? right = mid - 1 : left = mid + 1;
fond(arr, s, left, right);
}
void sort(int *arr) {
for (int i = 0; i < MAX; ++i)
for (int j = 0; j < MAX - 1 - i; ++j) {
if (arr[j] > arr[j + 1]) {
arr[j] ^= arr[j + 1];
arr[j + 1] ^= arr[j];
arr[j] ^= arr[j + 1];
}
}
for (i = 0; i < MAX; ++i) printf("%d ", arr[i]);
}