java算法之选择排序

package com.hym.test;

public class SelectSort {
	int[] arrayTest = { 5, 26, 1, 783, 23, 2, 62, 9, 46 };

	public void selectSort() {
		for (int i = 0; i < arrayTest.length; i++) {
			int theMinNumIndex = i;
			for (int j = i; j < arrayTest.length; j++) {
				if ((j < arrayTest.length - 1)
						&& (arrayTest[theMinNumIndex] > arrayTest[j + 1])) {
					theMinNumIndex = j + 1;
				}
			}
			int temp = arrayTest[i];
			arrayTest[i] = arrayTest[theMinNumIndex];
			arrayTest[theMinNumIndex] = temp;
		}
	}
	
	public static void main(String[] args) {
		SelectSort sort = new SelectSort();
		sort.selectSort();
		for (int i = 0; i < sort.arrayTest.length; i++) {
			System.out.print(sort.arrayTest[i] + " ");
		}
	}
}


1. 每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。

2. 选择排序比较的次数没有减少,只是每次找到最小的那个,最后才交换位置。所以减少了交换的次数。比冒泡排序快。

3. http://baike.baidu.com/view/547263.htm

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