选择排序的实现——直接选择排序
2011-07-20 21:02
183 查看
直接选择排序,对于n个元素,需要经过n-1此比较。其复杂度是O(n*n),稳定性:不稳定;空间消:O(1)
思想:
第1趟比较:程序将记录定位在第一个数据上,拿第一个数据依次和其后面的元素比较,如果第一个元素比后面的某个元素大(或者小),交换两个位置上元素,依次类推。经过第一次比较,这组数据中最小的元素被选出,被排列在第一位;
第2趟比较:程序将记录定位在第二个数据上,拿第二个数据依次和其后面的元素比较,如果第一个元素比后面的某个元素大(或者小),交换两个位置上元素,依次类推。经过第一次比较,这组数据中最小的元素被选出,被排列在第二位;
……
第n-1趟比较:……
按照这个规则一共进行n-1次比较。
直接选择排序介绍
直接选择排序算法实现简单,缺点是一次只能确定一个元素。
实现:
控制台输出:
[49, 30, 30, 22, 16, 9]
思想:
第1趟比较:程序将记录定位在第一个数据上,拿第一个数据依次和其后面的元素比较,如果第一个元素比后面的某个元素大(或者小),交换两个位置上元素,依次类推。经过第一次比较,这组数据中最小的元素被选出,被排列在第一位;
第2趟比较:程序将记录定位在第二个数据上,拿第二个数据依次和其后面的元素比较,如果第一个元素比后面的某个元素大(或者小),交换两个位置上元素,依次类推。经过第一次比较,这组数据中最小的元素被选出,被排列在第二位;
……
第n-1趟比较:……
按照这个规则一共进行n-1次比较。
直接选择排序介绍
直接选择排序算法实现简单,缺点是一次只能确定一个元素。
实现:
package my.sort; public class SelectSort { /** * * @param datas 需要排序的内容,这里使用int[]数组代替 */ public static void selectSort(int[] datas) { for (int i = 0; i < datas.length-1; i++) { for (int j = i + 1; j < datas.length; j++) { //可以实现Comparable接口来实现对象的比较 if (datas[i] < datas[j]) { int temp = datas[j]; datas[j] = datas[i]; datas[i] = temp; } } //可以查看每次排序后的数组情况 // System.out.println(java.util.Arrays.toString(datas)); } } public static void main(String[] args) { int[] array = { 22, 30, 49, 30, 16, 9 }; SelectSort.selectSort(array); System.out.println(java.util.Arrays.toString(array)); } }
控制台输出:
[49, 30, 30, 22, 16, 9]
相关文章推荐
- C++ 直接选择排序的实现实例代码
- 直接选择排序及交换二个数据的正确实现
- 排序算法之四 —— 直接选择排序及交换二个数据的正确实现
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- 直接选择排序---JAVA实现
- 经典算法系列之四 直接选择排序及交换二个数据的正确实现
- 冒泡以及直接选择排序的JAVA实现
- 排序算法之冒泡排序、选择排序、直接插入排序(java实现)
- 冒泡排序、直接插入排序及选择排序之Java实现
- 直接选择排序的C++实现及随机数组的产生方法
- C++ 直接选择排序的实现实例代码
- Python实现各类数据结构和算法---直接选择排序
- 直接选择类排序算法思想和实现过程
- java版排序算法简介及冒泡排序以及优化,选择排序,直接插入排序,希尔排序,堆排序,快速排序及其优化前言 2 分类 2 稳定性 3 时间复杂度 4 Java实现版本 5 1、冒泡排序 6 2、选择排序
- 直接排序、选择排序(Java实现)
- 用JAVA实现排序算法之三:直接选择排序
- 快速排序,冒泡排序,直接选择排序的算法实现
- java实现三种简单排序以及改良:冒泡排序,选择排序,直接插入排序
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现