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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值