一、选择排序
一种最简单的排序:
①首先,找到数组中最小的那个元素
②其次,将它和数组的第一个元素交换位置
③再次,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。
如此反复,直到将这个数组排序。
代码实现:(java实现)
public class Selection { //将a[]按升序排列 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); } } } }
代码中less()和exch()实现如下:
public class Example { public static boolean less(Comparable v,Comparable w) { return v.compareTo(w) < 0; } public static boolean isSorted(Comparable[] a) { //测试数组元素是否有序 for(int i = 1;i < a.length;i++) { if(less(a[i],a[i-1])) { return false; } return true; } } public static void main(String[] args) { //从标准输入读取字符串,将它们排序并输出 String[] a = In.readStrings(); sort(a); assert isSorted(a); show(a); } }
原文:https://www.cnblogs.com/DreamsofStars/p/10291773.html