码迷,mamicode.com
首页 > 编程语言 > 详细

Hark的数据结构与算法练习之简单选择排序

时间:2015-03-16 14:22:51      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:

/*
 * 简单选择排序
 */
public class SimpleSort {
	public static void main(String[] args) {
		int[] arrayData = { 5, 9, 6, 7, 4, 1, 2, 3, 8 };
		SimpleSortMethod(arrayData);
		for (int integer : arrayData) {
			System.out.print(integer);
			System.out.print(" ");
		}
	}

	/*
	 * 时间复杂度 :因为是双循环求解,所以是o(n^2)  
	 * 空间复杂度:使用的临时空间大小是一个常量,而不是与n有关系,所以空间复杂度是O(1)
	 * 说明:
	 * 其实与冒泡的排序大体是相似的,不同之处是冒泡判断出两个数大小后,直接进行交换;而简单选择排序是找出最大/最小的数后,再进行排序
	 */
	public static void SimpleSortMethod(int[] arrayData) {
		int maxIndex, i, j,valueTemp;
		for (i = 0; i < arrayData.length; i++) {
			maxIndex = i;
			for (j = i; j < arrayData.length; j++) {
				if(arrayData[j] > arrayData[maxIndex])
				{
					//在这里,只记录最大值的索引,在后边那个if中进行数值的交换
					maxIndex = j;
				}
			}
			if(i!=maxIndex)
			{
				valueTemp= arrayData[i];
				arrayData[i]= arrayData[maxIndex];
				arrayData[maxIndex] = valueTemp;
			}
		}
	}
}

  

Hark的数据结构与算法练习之简单选择排序

标签:

原文地址:http://www.cnblogs.com/hark0623/p/4341684.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!