zoukankan      html  css  js  c++  java
  • 回忆数组快速排序算法

    先回忆一下快速排序算法的本质:快速排序是冒泡排序的改进,第一次排序是将一个枢轴元素(通常指定为第一个元素)插入到数组中合适的位置,使得枢轴左边的元素都小于枢轴,右边的元素都大于枢轴,这样原来的数组就切分成两个相对有序的数组,再对其进行快速排序。

    具体做法:附设两个指针low,high,枢轴元素为第一个元素

    首先从high开始,找到第一个小于枢轴的元素,将该元素与枢轴互换,然后从low的位置起向后搜索,找到第一个大于枢轴的元素,将该元素与枢轴互换,重复进行直到low==high。

        static int array[] ={48,20,27,85,79,98,45}; 
        public static void main(String[] args){
            System.out.println("排序以前的数组:");
            printArray();
            System.out.println("排序后的数组:");
            quickSort(0,array.length-1);        
            printArray();
        }
        private static void quickSort(int low ,int high) {
            if(low<high){
                int index =partition(low,high);
                quickSort(low, index-1);
                quickSort(index+1, high);
            }
            
        }
        private static int partition(int low, int high) {
     
            int temp =array[low];
            while(low<high){
                while(low<high&&array[high]>=temp){
                    high--;
                }
                array[low] =array[high];
                   while(low<high&&array[low]<=temp){
                    low++;
                }
                array[high]=array[low];
                       }
            array[low]=temp;
                   return low;
        }
        private static void printArray() {
            for(int i:array){
                System.out.print(i+" ");
            }
            System.out.println();
            
        }
  • 相关阅读:
    安卓性能优化总结
    Splash广告界面
    安卓实现版本升级
    Kotlint集合简单总结
    Kotlin在处理GET和POST请求的数据问题
    udp 局域网群聊
    java 网络编程
    关于软件工程的课程建议
    结对编程--四则运算
    简单的结对代码练习
  • 原文地址:https://www.cnblogs.com/yuwenfeng/p/3092883.html
Copyright © 2011-2022 走看看