本文调试运行环境另见:点击打开链接
一、选择排序
1.排序过程
以升序为例,首先,找到数组中最小的元素,其次,将它和数组的第一个元素交换位置。再在剩下的元素中找到最小的元素,将它与数组第二个元素交换位置。如此往复,直到数组有序。
2.具体实现
import edu.princeton.cs.algs4.StdDraw;
import edu.princeton.cs.algs4.StdOut;
/*
* 模板类,声明了排序过程中常用的方法
* */
public class Template {
protected static boolean less(double v,double w){ //比较两个元素的大小
return (v - w) < 0;
}
protected static void exch(double[] a,int i,int j){ //交换两个元素的位置
double t = a[i];
a[i] = a[j];
a[j] = t;
}
protected static void show(double[] a){ //以柱状图的形式显示排序过程
int N = a.length;
for(int i = 0;i < N;i++ ){
double x = 1.0 * i / N;
d