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.单步跟踪: