zoukankan      html  css  js  c++  java
  • 算法--常用排序和查找

     

    常见算法中的排序和查找:

      1. 选择排序(指定一个和其他数比较)

        // 选择排序(指定一个和其他数比较)
        for(int i=0;i<length-1;i++){
            for(int j=i+1;j<length;j++){
                if(arr[i]>arr[j]){
                    int temp = arr[i];
                    arr[i]=arr[j];
                    arr[j]=temp;
                }
            }
        }

      2. 冒泡排序(相邻两个数比较)

        // 冒泡排序(相邻两个数比较)
        for(int i=0;i<length-1;i++){
            for (int j=0;j<length-1-i;j++) {
                if(arr[j]>arr[j+1]){
                    int temp = arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }

     

      3. 插入排序(指定一个数和他左边的数依次往左比较,直到不满足条件为止)

    //插入排序(指定一个数和他左边的数依次往左比较,直到不满足条件为止)
        //方法一:
        for(int i=0;i<length;i++){
            for(int j=i;j-1>=0 && arr[j-1]>arr[j];j--){        
                    int trmp = arr[j];
                    arr[j]=arr[j-1];
                    arr[j-1]=temp;            
            }
        }
        
        //方法二:
        for(int i=0;i<length;i++){
            int e = arr[i];
            int j;
            for(j=i;j-1>=0 && arr[j-1]>e;j--){        
                    arr[j]=arr[j-1];        
            }
            arr[j]=e;
        }

      4. 二分查找(折半查找) 

    //二分查找(折半查找)    
        int key=要找的数;
        int min=0;
        int max=length-1;
        int mid=(min+max)/2;
        while(arr[mid]!=key){
            if(arr[mid]>key){
                max=mid-1;
            }
            if(arr[mid]<key){
                min=mid+1;
            }
            mid=(min+max)/2;
            if(max<min){
                mid=-1;
                break;
            }    
        }
        System.out.printf(mid);
     
  • 相关阅读:
    排序之快速排序
    希尔排序
    大数据的乘法
    大数据的乘法实现——C语言
    js函数纪实
    【转】js中$含义及用法
    python基础操作
    git 常用指令
    Django框架学习记录
    【转】Java 字符串拼接 五种方法的性能比较分析 从执行100次到90万次
  • 原文地址:https://www.cnblogs.com/huaxiansheng/p/11031367.html
Copyright © 2011-2022 走看看