黑马程序员技术交流社区
标题: 折半思想 [打印本页]
作者: 赵云18235802528 时间: 2015-7-8 06:29
标题: 折半思想
#include <stdio.h>
void paixu(int arr[],int len){
//使用循环遍历没有排序前的数组
for (int i=0; i<len; i++) {
printf("%d\t",arr);
}
printf("\n");
int temp;//引用第三个数为了让两个数的位置进行交换
for (int i=0; i<len; i++) {
for (int j=i+1; j<len; j++) {
if (arr>arr[j]) {
temp=arr;
arr=arr[j];
arr[j]=temp;
}
}
}
}
void printf_xuanze(int arr[],int len){
//遍历排序后的数组
for (int i=0; i<len; i++) {
printf("%d\t",arr);
}
printf("\n");
}
//查找数 len代表数组的长度 x代表所要找的数字
int searchnumber(int arr[],int len,int x){
//low代表最小的数,high代表最大的数,mid代表两个数的中间数
int low=0,high=len-1,mid;
while (low<=high) {
mid=(low+high)/2;
if (x<arr[mid]) {
high=mid-1;
}else if (x>arr[mid]){
low=mid+1;
}else{
x=mid;
return mid;
}
}
return -1;
}
int main(int argc, const char * argv[]) {
int a[10]={12,97,9,7,1,29,87,297,982,17};
paixu(a,10);
printf_xuanze(a, 10);
int loc=searchnumber(a,10,97);
printf("%d\n",loc);
return 0;
}
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |