#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; }
|