码迷,mamicode.com
首页 > 编程语言 > 详细

java实现快速排序

时间:2016-01-21 13:51:25      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

  对于快速排序,课堂上当时就没理解,今天看了一下,大概可以写出来了

  思想:找一个元素作为基准数,然后从数组前后两边取出元素和基准数基表,从后面找到比基准数小的数,下标i,从前边找到比基准数大的数,下标j,然后两数交换,过程中判断并保证i<j;

  这样继续循环下去,当i=j时停止,此时第一轮操作结束,更新基准数:把当前基准数和停止数即下标为i的书交换,此时可以保证,除新的基准数外,下标为i的数比前边的数大,比后边的数小;

  接下来用递归对前后两部分分别做以上操作。

  代码如下:

技术分享
int [] array;
    public void quickSort(int left,int right){
        if(left >right){
            return;
        }
        int i,j,temp,base;
        i = left;
        j = right;
        base = array[i];
        while(i != j){
            while(array[j]>=base&&i<j){
                j--;
            }while(array[i]<=base&&i<j){
                i++;
            }
            if(i<j){
                temp = array[i];
                array[i] = array[j];
                array[j] = temp;
            }
        }
        array[left] = array[i];
        array[i]=base;
        quickSort(left, i-1);
        quickSort(i+1, right);
        
    }
View Code

输入数组:9,8,7,6,5,4,3,2,1

输出结果:1,2,3,4,5,6,7,8,9

java实现快速排序

标签:

原文地址:http://www.cnblogs.com/lercy81/p/5147903.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!