zoukankan      html  css  js  c++  java
  • 选择排序&冒泡排序&折半查找

    //选择排序

    void test2(int a[],int len){

    //每次找出一个最小值,最小值依次与原数组交换位置,通过下标来完成交换,最小值下标每次都在变,变量存储

    //    假如第一个是最小值

        int mine=0;

        int teamp=0;

    //    外层负责趟数

        for (int i=0; i<len; i++) {

            //    假如每一次的第一个是最小值

            mine=i;

    //    内层负责寻找每趟的最小值

    //        每次起始比较值都不一样所以j=i+1,改变次数

            for (int j=i+1; j<len; j++) {

    //            最小值下标赋给mine

                if (a[mine]>a[j]) {

                    mine=j;

                }

    //

            }

    //        交换   mine!=i表示最小值不是假设的值

            if (mine!=i) {

                teamp=a[i];

                a[i]=a[mine];

                a[mine]=teamp;

            }

            

    //        每次打印的都是最小值

            printf("%d ",a[i]);

            

        

    }

    }

    //冒泡排序

    void test3(int a[],int len){

        int temp=0;

    //外层负责趟数

        for (int i=0; i<len; i++) {

    //        内层负责每趟交换,起始值j=0不变,len-i-1控制次数

            for (int j=0; j<len-i-1; j++) {

    //            相邻值进行比较

                if (a[j]>a[j+1]) {

    //交换

                    temp=a[j+1];

                    a[j+1]=a[j];

                    a[j]=temp;

                

                }

            }

            printf("%d ",a[len-i-1]);

        }

        printf(" ");

    }

    //折半查找,针对有序数组

    int  test4(int a[],int len,int key){

    //    指向最高,最低,以及中间下标的变量

        int hight=len-1,low=0,mid=0;

        

        

    //    当low,hight,mid指向同一个时,就可以找到值

        while (low<=hight) {

            mid=(hight+low)/2;

    //        在右边

            if (key>a[mid]) {

                low=mid+1;

                //            在左边

            }else if (key<a[mid]){

                hight=mid-1;

    }

    //        刚好是

                else{

                return mid;

            }

        }

            return -1;

        }

        

  • 相关阅读:
    SQL联合更新
    Service Oriented Architecture and WCF
    ubuntu10.4 中安装中文输入法
    QT WINDOWS QTCreator
    QImage,QPixmap,QBitmap,QPicture
    一、Qt Creator的安装和hello world程序的编写
    解决ubuntu打开windows下保存的txt文件中文乱码问题
    Windows+QT+Eclipse+MinGW搭建QT开发环境详细教程
    虚拟机VMware Workstation v6.5官方正式版+汉化补丁+算号器(附安装及使用图解教程)(转)
    决定你是穷人还是富人的12条
  • 原文地址:https://www.cnblogs.com/lijianyi/p/4278530.html
Copyright © 2011-2022 走看看