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

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.运行查看程序对错:排序成功

4.单步跟踪:

posted @ 2017-10-17 15:47  20162316刘诚昊  阅读(114)  评论(0编辑  收藏  举报