黑马程序员技术交流社区

标题: 选择排序和折半选择实现代码。 [打印本页]

作者: 408205555    时间: 2015-7-21 19:40
标题: 选择排序和折半选择实现代码。
本帖最后由 408205555 于 2015-7-21 19:45 编辑

//选择排序,从小到大排列。
void main(char argc.const char * argv[]){
        int number[6]={2,1,3,7,4,9};                                  //定义数组
        int temp=0;                                                           //相当于数字交换中转站
        int length=sizeof(number)/sizeof(int);               //计算数组的长度
        for(int i=0;i<length-1;i++){                                 //循环遍历数组,每循环一次,确定一个最小的数,下次参与循环的数字就会减一个
                for(int j=i+1;j<length;j++){                         //让前一个数与后一个数做比较
                        if(number>number[j]){                    //如果前一个数>后一个数
                                temp=number;                         //把前一个数赋值给temp,这三段代码是让前后两个数字交换位置
                                number=number[j];                     
                                number[j]=temp;
                        }
                }
        }
}


//折半选择
//如果key大于中间值,则让最小值=中间值+1
//如果key小于中间值,则让最大值=中间值-1
//如果最小值大于最大值,则证明要找的数不存在
void main(char argc.const char * argv[]){
        int number[]={3,4,12,20,21,23,28,45,67,100};
        //查找20
        int low=0;
        int high=sizeof(number)/sizeof(int)-1;
        int mid=0;
        //要查找的数
        int key=20;

        while(min<=max){
                mid=(low+high)/2;
                if(key>number[mid]){
                        low=mid+1;                        
                }else if(key<number[mid]){
                        high=mid-1;
                }else{
                        printf("找到了");
                }
        }
        printf("没找到");
        
}
作者: 许庭洲    时间: 2015-7-22 16:05
值得学习ing!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2