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);// 排序右半部分
    
        }
    
    }
  • 相关阅读:
    2019春第十一周作业
    2019春第十周作业
    2019春第九周作业
    2019春第八周作业
    2019春第七周作业
    2019春第六周作业
    寒假作业一:打印沙漏
    寒假作业三:抓老鼠啊亏了~还是赚了?
    寒假作业二:币值转换
    秋季学期学习总结
  • 原文地址:https://www.cnblogs.com/gavinYang/p/11202779.html
Copyright © 2011-2022 走看看