选择排序及其JAVA实现
2013-10-05 10:00
330 查看
选择排序是一种借助“选择”进行排序的方法,其主要思想是:每趟排序在当前待排序序列中选出关键码最小的记录,添加到有序序列中,选择排序的特点是记录移动的次数较少!
简单选择排序:简单选择排序是选择排序中最简单的排序方法,其基本思想是:第i趟排序在待排序序列r[i]----r
中选取关键码最小的记录,并和第i个记录交换作为有序序列的第i个记录。
具体实现过程是:
(1).将整个记录序列划分为有序区和无序区,初始时有序区为空,无序区包含待排序的所有记录。
(2)在无序区中选取关键码最小的记录,将它与无序区中的第一个记录交换,使得有序区扩展了一个记录,同时无序区减少了一个记录
(3)不断重复(2),知道无序区中只剩下一个记录为止,此时所有的记录已经按关键码从小到大的顺序访问。
输出结果:[1, 2, 3, 4, 5, 7, 8, 9, 9]
简单选择排序:简单选择排序是选择排序中最简单的排序方法,其基本思想是:第i趟排序在待排序序列r[i]----r
中选取关键码最小的记录,并和第i个记录交换作为有序序列的第i个记录。
具体实现过程是:
(1).将整个记录序列划分为有序区和无序区,初始时有序区为空,无序区包含待排序的所有记录。
(2)在无序区中选取关键码最小的记录,将它与无序区中的第一个记录交换,使得有序区扩展了一个记录,同时无序区减少了一个记录
(3)不断重复(2),知道无序区中只剩下一个记录为止,此时所有的记录已经按关键码从小到大的顺序访问。
package sort; import java.util.Arrays; /** * 简单选择排序 * @author zhouhai * */ public class SimpleSelectionSort { public static void main(String[] args) { // TODO Auto-generated method stub int a[]=new int[]{2,3,4,1,9,5,8,7,9};//定义一个测试数组 sort(a); System.out.println(Arrays.toString(a)); } public static void sort(int a[]){ int len=a.length; for(int i=0;i<len;i++){ int index=i; for(int j=i+1;j<len;j++){ if(a[index]>a[j]) index=j; } //n为a[i+1]-a[len]中关键码最小的值 if(i!=index){ a[i]=a[index]+a[i]; a[index]=a[i]-a[index]; a[i]=a[i]-a[index]; } } } }
输出结果:[1, 2, 3, 4, 5, 7, 8, 9, 9]
相关文章推荐
- java版排序算法简介及冒泡排序以及优化,选择排序,直接插入排序,希尔排序,堆排序,快速排序及其优化前言 2 分类 2 稳定性 3 时间复杂度 4 Java实现版本 5 1、冒泡排序 6 2、选择排序
- Java中实现简单的三大排序——冒泡、选择、插入
- java实现选择排序
- 排序算法之选择排序的思想以及Java实现
- 程序员必知的8大排序(二)-------简单选择排序,堆排序(java实现)
- Java实现算法之--选择排序
- java实现选择排序
- java 排序算法实现 其三:直接选择排序
- C语言选择排序详解及其实现
- Java实现选择排序、插入排序、希尔排序算法
- 直接选择排序---JAVA实现
- java实现快速排序、插入排序、选择排序、冒泡排序算法
- java实现冒泡排序,插入排序,选择排序,快速排序
- 常用算法Java实现之选择排序
- java实现直接出入、希尔、直接选择、快速排序
- Java 实现选择排序
- 选择,插入,希尔,快速,堆,归并排序六种排序方式的Java 实现和性能对比(付代码)
- 排序算法入门之选择排序(java实现)
- Java实现排序(快速排序、冒泡排序、选择排序、基数排序、插入排序)
- 最简单之Java实现冒泡排序、选择排序、插入排序、希尔排序、归并排序和快速排序(转载请注明出处)