zoukankan      html  css  js  c++  java
  • 冒泡,选择,快速三种排序

    //冒泡排序
    public static void sort1(int[] arr){
        for (int i=0;i<arr.length-1;i++){
            for(int j=i+1;j<arr.length;j++){
                //和后一个数相比,比它大就交换
                if(arr[i]>arr[j]){
                    int tmp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = tmp;
                }
            }
        }
    }
    
    //选择排序
    public static void sort2(int[] arr){
    
        for (int i=0;i<arr.length-1;i++){
            int minIndex = i;
            //求最小值的位置
            for(int j=i+1;j<arr.length;j++){
                if(arr[minIndex]>arr[j]){
                    minIndex = j;
                }
            }
            //和最小值交换位置
            if(minIndex!=i){
                int tmp = arr[i];
                arr[i] = arr[minIndex];
                arr[minIndex] = tmp;
            }
        }
    }
    
    
    //快速排序
    public static void sort3(int[] arr,int low, int high){
    
        int mediaVal, mediaIndex;// pivot->位索引;p_pos->轴值。
        if(low<high){
            mediaIndex = low;
            mediaVal = arr[mediaIndex];
            for (int i = low + 1; i <= high; i++){
                //将小于中间数的放到前面,大于的放到后面
                if (arr[i] < mediaVal) {
                    mediaIndex++;
                    int tmp = arr[mediaIndex];
                    arr[mediaIndex] = arr[i];
                    arr[i] = tmp;
                }
            }
            //将中间数放到中间
            int tmp = arr[low];
            arr[low] = arr[mediaIndex];
            arr[mediaIndex] = tmp;
    
            sort3(arr, low, mediaIndex - 1);// 排序左半部分
            sort3(arr, mediaIndex + 1, high);// 排序右半部分
    
        }
    
    }
  • 相关阅读:
    Sublime text追踪函数插件:ctags
    上传项目后服务器的一些设置
    svg可缩放矢量图形
    定时备份mysql
    phpstudy配置ssl
    thinkphp数据表操作恐怖事件。
    把一个数组和另一个数组放进同一个数组
    mysql数据库备份与还原命令
    mysql一些有用的链接
    MySQL各版本的区别
  • 原文地址:https://www.cnblogs.com/gavinYang/p/11202779.html
Copyright © 2011-2022 走看看