A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© RedProtector 中级黑马   /  2015-8-10 15:15  /  300 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 RedProtector 于 2015-8-10 15:22 编辑

快速排序是一种非常高效的排序算法,它采用“分而治之”的思想,把大的拆分成小的,小的再拆分为更小的。

其原理如下:对一组给定的记录,通过一趟排序后,将原序列分为两部分,其中前一部分的所有数据均比后一部分的所有的记录小,然后依次对前后两部分的记录进行快速排序,递归该过程,直到序列中的所有记录均有序为止。

package com.mianshi.easy;
public class TestQuickSort {
    public static void quickSort(int[] a){
        sort(a, 0, a.length-1);
    }
    public static void sort(int[] a, int low, int high){   
        int i, j;
        int index;
        if(low >= high){
            return;
        }
        i = low;
        j = high;
        index = a;
        while(i<j){
            while(i<j && a[j]>=index){
                j--;
            }
            if(i<j)
                a[i++] = a[j];
            while(i<j && a<index){
                i++;
            }
            if(i<j){
                a[j--]=a;
            }
        }
        a = index;
        sort(a, low, i-1);
        sort(a, i+1, high);
    }
    public static void main(String[] args) {
       int[] a = {6,5,3,9,0,5,1,2,4,7,8};
        //快速排序
        quickSort(a);
        for(int i = 0;i < a.length; i++){
            System.out.print(a+" ");
        }
    }
  }
结果:
0 1 2 3 4 5 5 6 7 8 9

241319579909620.png (110.82 KB, 下载次数: 4)

241319579909620.png

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马