2.1.17动画。修改插入排序和选择排序的代码,使之将数组内容绘制成正文中所示的棒状图。在每一轮排序后重绘图片来产生动画效果,并以一张“有序”的图片作为结束,即所有圆棒均已按照高度有序排列。

插入排序

import edu.princeton.cs.algs4.StdDraw;
public class Insertion {
    //排序
	public static void sort(Comparable[] a) {
		int N=a.length;
		for(int i=1;i0&&less(a[j],a[j-1]);j--) {
				exch(a,j-1,j);
				draw(a);
				clear();
			}				
		}
		draw(a);
	}
	//绘图
	public static void draw(Comparable[] a) {
		int N=a.length;
		for(int i=0;i

选择排序

import edu.princeton.cs.algs4.StdDraw;

public class Selection {
    //排序
	public static void sort(Comparable[] a) {
		int N = a.length;
		for (int i = 0; i < N; i++) {
			int min = i;
			for (int j = i + 1; j < N; j++) {
				if (less(a[j], a[min])) {
					min = j;
				}			
			}
			exch(a, i, min);
			draw(a);
			clear();
		}
		draw(a);
	}
	 //绘图
	public static void draw(Comparable[] a) {
		int N=a.length;
		for(int i=0;i

 

你可能感兴趣的:(算法)