首先创建随机数组
/*
* 不重复
*/
void getUniq(int s[], int i) {
s[i] = rand() % 100;
int j = 0;
while (j < i) {
if (s[j] == s[i]) {
getUniq(s, i);
}
j++;
}
}
int *create_array(int size) {
int *s;
int i = 0;
srand(time(0));
if (size <= 0) return NULL; //对参数检查
s = (int *)malloc(sizeof(int) * size);
for (i; i < size; i++) {
getUniq(s, i);
}
return s;
}
2. 对已经创建好的数组进行排序(这里使用的是快速排序)
void quickSort(int s[], int left, int right) {
int i = left;
int j = right;
int base = s[i];
if(i < j) {
while (i < j) {
while (i < j && base <= s[j]) {
j--;
}
if (i < j) {
s[i++] = s[j];
}
while (i < j && base >= s[i]){
i++;
}
if (i < j) {
s[j--] = s[i];
}
}
s[i] = base;
quickSort(s, left, i - 1);
quickSort(s, i + 1, right);
}
} //end of fucktion
3. 使用递归方式进行折半查找