20162316刘诚昊 17年10月9日测验“排序课堂测试”

本文介绍了一个Java快速排序算法的实现过程。通过移植书上的代码,实现了对数组的快速排序,并通过IDEA单步跟踪验证了排序过程。文章还提供了排序过程中关键步骤的截图,展示了从初始未排序状态到部分排序状态的变化。

20162316刘诚昊 2017-2018-2 《Java程序设计》10月9日“排序课堂测试”

实验要求

1 用JDB或IDEA单步跟踪对3 8 12 34 54 84 91 110进行快速排序的过程(后加学号)
2 提交第一趟完成时数据情况的截图,要全屏,包含自己的学号信息
3 课下把代码推送到代码托管平台

过程:

1.移用书上的quik_sort代码

public class quick_Sort {
    public static void quickSort(Comparable[] data, int min, int max){
        int pivot;

        if (min<max)

        {
            pivot = partition(data, min, max);//make partitions
            quickSort(data,min,pivot-1);//sort left partition
            quickSort(data,pivot+1,max);//sort right partition
        }
    }

    private static int partition(Comparable[] data, int min, int max){
        Comparable partitionValue = data[min];

        int left = min;
        int right = max;

        while (left < right)
        {
            while (data[left].compareTo(partitionValue) <= 0 && left < right)
                left++;

            while (data[right].compareTo(partitionValue) >0)
                right--;

            if (left < right)
                swap(data, min, right);
        }
        swap(data, min, right);

        return right;
    }

    private static void swap (Comparable[] data, int index1, int index2){
        Comparable temp = data[index1];
        data[index1] = data[index2];
        data[index2] = temp;
    }
}

2.自己写出产品代码

public class quik_sorting {
    public static void main(String[] args) {
        Comparable[] num = {3, 8, 12, 34, 54, 84, 91, 110, 2316};
        quick_Sort qs = new quick_Sort();
        qs.quickSort(num, 0,num.length-1);
        for(Comparable element : num){
            System.out.print(element + " ");
        }
    }
}

3.运行查看程序对错:排序成功
1062676-20171017153605974-1250979890.png

4.单步跟踪:
1062676-20171017153808099-1777612032.png

转载于:https://www.cnblogs.com/ignor/p/7682073.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值