简单选择排序Java实现与分析

1、基本思想
  在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。

2、图示



3、Java实现
package com.leiht.sort;

/**
* 直接选择排序简单实现
 * @author Leiht
 *
 */
public class SimpleSelectSort {
	public static void main(String[] args) {
		int[] numbers = { 56, 45, 78, 67, 99, 13, 34, 49, 55, 34, 12, 77, 1 };

		System.out.println("排序之前:");
		for (int i = 0; i < numbers.length; i++) {
			System.out.print(numbers[i] + " ");
		}
		
		//执行排序算法 
		new SimpleSelectSort().sort(numbers);

		System.out.println();
		System.out.println("排序之后:");
		for (int i = 0; i < numbers.length; i++) {
			System.out.print(numbers[i] + " ");
		}
	}
	
	/**
	 * 排序方法
	 * @param numbers
	 */
	public void sort(int[] numbers) {
		//从第0个开始循环数组中第一个元素
		for(int i = 0; i < numbers.length; i++) {
			int min = numbers[i];
			int index = i;
			//从当前元素的下一个元素开始循环,选出从i到最后一个中最小的放到第i个位置
			for(int j = i + 1; j < numbers.length; j++) {
				if(numbers[j] < min) {
					min = numbers[j];
					index = j;
				}
			}
			
			numbers[index] = numbers[i];
			numbers[i] = min;
			
		}
	}
	
}


4、分析
  简单选择排序是不稳定的排序

猜你喜欢

转载自leihongtai2010.iteye.com/blog/2258002