zoukankan      html  css  js  c++  java
  • 快速排序

    快速排序的简单实现(大话数据结构)

    采用递归的方式,每次讲数组分成两部分,一部分是比数组指定一个值小的一部分是比指定值大的部分,常常指定的值就是传递过来数组的第一个,你也可以采用数组中的其他数字

    最后对好的两部分还是按照上面的步骤进行分类,一直到分成的两部分的数组中只有一个值为止

    import java.util.Arrays;
    
    public class QuickSort {
        void sort(int low,int end,int[]arr){
            if(low<end){
                int piov = partition(low, end, arr);
                sort(low,piov-1,arr);
                sort(piov+1,end,arr);
            }
        }
    
        int partition(int low ,int high, int []arr){
            int piovkey=arr[low];
            while(low<high){
                while(low<high&&arr[high]>=piovkey){
                    high--;
                }
                swamp(low,high,arr);
                while(low<high&&arr[low]<=piovkey){
                    low++;
                }
                swamp(low,high,arr);        //注意在这里每次交换的其实就是之前指定的那个值
    
            }
            return low;
        }
         void swamp(int index1,int index2,int arr[]){
            int temp=arr[index1];
            arr[index1]=arr[index2];
            arr[index2]=temp;
        }
    
        public static void main(String[] args) {
            int a[]={4,2,6,5,1,3};
            new QuickSort().sort(0,a.length-1,a);
            System.out.println(Arrays.toString(a));
        }
    }
  • 相关阅读:
    cocos2dx——九宫格CCScale9Sprite
    COCOS学习笔记--TexturePacker使用详解
    leetcode 旋转数组
    leetcode 从排序数组中删除重复项
    使用javascript随机生成斗地主玩家手牌
    模仿w3c school的示例导航栏
    c#中快速排序的学习
    常用语法梳理
    技巧类
    markdown备忘
  • 原文地址:https://www.cnblogs.com/feixiangdecainiao/p/10635406.html
Copyright © 2011-2022 走看看