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

    //基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

    public static void main(String []args){

         int arr[]={-1,-5,6,2,0,9,-3,-8,12,7};

         QuickSort qs=new QuickSort();

         qs.sort(0, arr.length-1, arr);

         //输出最后结果

         for(int i=0;i<arr.length;i++){

            System.out.print(arr[i]+" ");

         }

       }

    class QuickSort{

       public void sort(int left,int right,int [] arr){

         int l=left;

         int r=right;

         int pivot=arr[(left+right)/2];//找中间值

         int temp=0;

         while(l<r){

            while(arr[l]<pivot) l++;

            while(arr[r]>pivot) r--;

            if(l>=r) break;

            temp=arr[l];

            arr[l]=arr[r];

            arr[r]=temp;

            if(arr[l]==pivot) --r;

            if(arr[r]==pivot) ++l;

         }

         if(l==r){

            l++;

            r--;

         }

         if(left<r) sort(left,r,arr);

         if(right>l) sort(l,right,arr);

       }

  • 相关阅读:
    C语言基础-第一章
    C语言基础-第三章
    C语言基础-第五章
    怎样在WIN7系统下安装IIS
    Asp.Net中使用水晶报表(下)
    Asp.Net中使用水晶报表(中)
    Asp.Net 中使用 水晶报表(上)
    A1112. Stucked Keyboard
    A1111. Online Map
    A1110. Complete Binary Tree
  • 原文地址:https://www.cnblogs.com/ql211lin/p/3742668.html
Copyright © 2011-2022 走看看