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

     1 public class test1
     2 {
     3     public static int partition(int[] array,int lo,int hi){
     4             int key=array[lo];
     5             while(lo<hi){
     6                 while(array[hi]>=key&&hi>lo){//从后半部分向前扫描
     7                     hi--;
     8                 }
     9                 array[lo]=array[hi];
    10                 while(array[lo]<=key&&hi>lo){//从前半部分向后扫描
    11                     lo++;
    12                 }
    13                 array[hi]=array[lo];
    14             }
    15             array[lo]=key;
    16             return lo;
    17     }
    18     
    19     public static void quick_sort(int[] array,int lo ,int hi){
    20         if(lo>=hi){//如果下标不符合要求,就需要return
    21             return ;
    22         }
    23         int index=partition(array,lo,hi);
    24         sort(array,lo,index-1);
    25         sort(array,index+1,hi); 
    26     }
    27     public static void main(String args[]){
    28     int a[] = {1,3,29,2,78,11,33,25};
    29     quick_sort(a,0,7);
    30     for (int j = 0;j<a.length ;j++ )
    31     {
    32         System.out.println(a[j]);
    33     }
    34     }
    35 }

    快速排序的时间复杂度位O(nlogn),记忆口诀:跟着我右手左手一个慢动作,右手左手慢动作重播。

  • 相关阅读:
    .NET2.0基础类库中的范型——FunctionalProgramming
    原则
    080711 30℃
    关于mcp
    080714 33℃
    080715 31℃
    080716 30℃
    11号
    iOS-调用系统的短信和发送邮件功能,实现短信分享邮件分享
    UIView总结
  • 原文地址:https://www.cnblogs.com/g177w/p/8341259.html
Copyright © 2011-2022 走看看