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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© java8023 中级黑马   /  2015-6-5 00:32  /  313 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

目前就学了两种方法:冒泡排序法和选择比较法
另外还有插入排序法,和快速排序法。
快速排序法不懂,谁能给具体讲讲呢

8 个回复

倒序浏览
说不清楚,你直接百度比较方便,网上都有
回复 使用道具 举报
我也是醉了,快速排序法你在哪里
回复 使用道具 举报
大神啊大神啊,哪有啊,在哪里啊
回复 使用道具 举报
本帖最后由 hieiyukina 于 2015-11-23 16:54 编辑

123213321312312

Quick.zip

3.63 KB, 下载次数: 4

快速排序

回复 使用道具 举报
hieiyukina 发表于 2015-6-6 22:54
附件是工程源代码package cn.itcast_01;

public class TestMain {

谢谢你的回复,可是没有编程思想啊,注释那么少,看不懂啊大神
回复 使用道具 举报
Amu 中级黑马 2015-6-6 23:17:34
7#
快速排序是一种效率很高的排序,体现的是一种分治的思想,先找到一个基准值,通过指针的移动,把比它小的放在其左边,比它大的放在其右边,这样就确定了基准值的位置。接着可以对左边和右边再进行快速排序,不停的递归下去
回复 使用道具 举报
Amu 中级黑马 2015-6-6 23:18:38
8#
package Test1_1;
/**
* 快速排序:体现的是一种分治的思想
* @author thinkpad
*
*/
public class QuickSort {
        public static void main(String[] args) {
                int[] arr={12,44,34,-2,345,68};
                printArray(arr);//排序前
                quickSort(arr,0,arr.length-1);
                printArray(arr);//排序后
        }

        public static void quickSort(int[] arr, int left, int right) {
                if(left<right){
                        int i=left;
                        int j=right;
                        int key=arr[left];
                        while(i<j){
                                while(arr[j]>key){
                                        j--;
                                }
                                swap(arr,i,j);
                                while(arr[i]<key){
                                        i++;
                                }
                                swap(arr,i,j);
                        }
                        quickSort(arr,left,i-1);
                        quickSort(arr,i+1,right);
                }
               
        }

        public static void swap(int[] arr, int i, int j) {
                // TODO Auto-generated method stub
                int temp=arr[i];
                arr[i]=arr[j];
                arr[j]=temp;
               
        }

        public static void printArray(int[] arr) {
                // TODO Auto-generated method stub
                System.out.print("[");
                for(int i=0;i<arr.length;i++){
                        if(i!=arr.length-1)
                                System.out.print(arr[i]+",");
                        else
                                System.out.println(arr[i]+"]");
                }
        }
}
回复 使用道具 举报
还没学到啊,看似很复杂的样子!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马