java编程题:用Java实现一个简单选择排序算法

import java.util.Arrays;

/**
 * java编程题:用Java实现一个简单选择排序算法
 * 
 * 基本思想:
 * 		在长度为N的无序数组中,第一次遍历n-1个数,找到最小的数值与第一个元素交换;
 * 		第二次遍历n-2个数,找到最小的数值与第二个元素交换;
 * 		。。。
 * 		第n-1次遍历,找到最小的数值与第n-1个元素交换,排序完成
 *  
 * 思路:
 *		两层循环
 *		第一个层循环遍历数组,第二层循环找到剩余元素中最小值的索引,内层循环结束,交换数据。
 *		内层循环每结束一次,排好一位数据。两层循环结束,数据排好有序。
 * 		
 */
public class Test {

	public static void main(String[] args) {
		int a[] = { 22, 18, 36, -20, 93, 6, -1, 17, 9, 69, 38 };
		selectSort(a);
		System.out.println(Arrays.toString(a));
	}

	/**
	 * 简单选择排序
	 * @param sortNum
	 */
	private static void selectSort(int[] sortNum){
		for (int i = 0; i < sortNum.length; i++) {			//遍历数组
			int minIndex = i; 								//记录最小值所在的索引值
			for (int j = i+1; j < sortNum.length; j++) {	//找剩余元素中最小值得索引
				if(sortNum[j] < sortNum[minIndex]){  
					minIndex = j;  
                }
			}
			// 将最小的一个数与第一个位置(sortNum[i])的数交换
			if(minIndex != i){
				int temp = sortNum[i]; 
				sortNum[i] = sortNum[minIndex];   
				sortNum[minIndex] = temp;
			}
		}
	}
	
}


参考:
http://blog.csdn.net/jianyuerensheng/article/details/51254311
http://blog.csdn.net/ls5718/article/details/51809866
http://blog.csdn.net/u010156024/article/details/48932219
https://my.oschina.net/u/2260184/blog/507857
http://blog.csdn.net/u014136472/article/details/49248957
http://www.runoob.com/w3cnote/sort-algorithm-summary.html

    原文作者:排序算法
    原文地址: https://blog.csdn.net/min996358312/article/details/67634301
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞