快速排序

  1. package net.itdos.csdn;  
  2.   
  3. public class QuickSort {  
  4.     public static void main(String[] args) {  
  5.   
  6.          int[] nums = {65723345687988723576132};  
  7.   
  8.          sort(nums, 0, nums.length-1);  
  9.   
  10.          for(int i = 0; i < nums.length; i++) {  
  11.   
  12.            System.out.print(nums[i] + " ");  
  13.   
  14.          }  
  15.   
  16.        }  
  17.   
  18.   
  19.        static int partition(int[] nums, int low, int hight) {  
  20.   
  21.            int pivot = nums[low]; //枢纽   
  22.       
  23.            while(low < hight) {  
  24.       
  25.              while(low < hight && pivot <= nums[hight]) { //从高位开始向前搜索   
  26.       
  27.                hight--;  
  28.       
  29.              }  
  30.       
  31.              nums[low] = nums[hight];  
  32.       
  33.              while(low < hight && pivot >= nums[low]) { //从低位开始向后搜索   
  34.       
  35.                   low++;  
  36.       
  37.                }  
  38.       
  39.                nums[hight] = nums[low];  
  40.       
  41.                }  
  42.       
  43.                nums[low] = pivot;  
  44.       
  45.            return low;  
  46.   
  47.       }  
  48.   
  49.       /** 
  50.  
  51.       *  递归 
  52.  
  53.       */  
  54.   
  55.       static void sort(int[] nums, int low, int hight) {  
  56.   
  57.           if(low < hight) { //跳出递归的条件, 否则会 java.lang.StackOverflowError   
  58.   
  59.           int pivot = partition(nums, low, hight);  
  60.   
  61.           sort(nums, low, pivot-1);  
  62.   
  63.           sort(nums, pivot + 1, hight);  
  64.   
  65.          }  
  66.   
  67.       }  
  68. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值