简单选择排序 T=O(N^2)
基本思想:
第一趟在初始序列A[0]~A[n-1]中找出最小值元素的下标, 然后将该最小元素与A[0]调换位置,
下一趟排序在A[1]~A[n-1]中找出最小值元素的下标, 然后将该最小元素与A[1]调换位置…
经过n-1次调换后可排序完成。
代码:
1 | public class ChooseSortTest { |
选择排序的效率:
选择排序和冒泡排序执行了相同次数的比较:N*(N-1)/2.对于10个数据项,需进行45次比较。
然而,10个数据项只需要10次数据交换,而对于100个数据项,需要4950次比较,但只进行不到100次交换。
当N值很大时,比较的次数是主要的,所以结论是选择排序和冒泡排序一样运行了O(N^2)时间,但是,选择排序无疑更快,因为它进行的交换少得多。