标签:
参考1) <Algorithms_4th> chapter 2 sorting
参考2) Sorting algorithms, wiki
1 selection sort 选择排序
首先,整个序列一次比较,选择最小值,置于第一位;
然后,剩余序列再次比较,选择最小值,置于第二位; 以此类推。
Java 实例:
public class Selection { public static void sort(Comparable[] a) { // Sort a[] into increasing order. int N = a.length; // array length for (int i = 0; i < N; i++) { // Exchange a[i] with smallest entry in a[i+1...N). int min = i; // index of minimal entr. for (int j = i+1; j < N; j++) if (less(a[j], a[min])) min = j; exch(a, i, min); } } }
2 insertion sort 插入排序
首先,前两个元素比较,逆序交换位置,顺序则不变;
然后,后面元素与其依次比较(即已经排序的前面元素),插入相应的位置;以此类推。
Java 实例:
public class Insertion { public static void sort(Comparable[] a) { // Sort a[] into increasing order. int N = a.length; for (int i = 1; i < N; i++) { // Insert a[i] among a[i-1], a[i-2], a[i-3]... .. for (int j = i; j > 0 && less(a[j], a[j-1]); j--) exch(a, j, j-1); } } }
3 merge sort 合并排序
4 quick sort 快速排序
5 bubble sort 冒泡排序
首先,前两个元素比较,小值置前,大值排后;
然后,右移一个位置, 继续两两比较,直到最大值沉于末尾;以此类推。
标签:
原文地址:http://www.cnblogs.com/xinxue/p/5313122.html