A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵云18235802528 中级黑马   /  2015-7-8 06:29  /  601 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马