选择排序思想:
数组长度为L,做(L-1)趟的选择,把最小的元素放在有序数组的后面(无序数组的首位)。
这样,每趟需要做(L-1)~1次比较,总共做L*(L-1)/2次比较,时间复杂度O(N*N),空间复杂度O(1),是一种稳定的排序。
/**
* SelectSort.java
*
* 该类实现选择排序.
* i.e: java SelectSort 3 2 1 4 5 6
*
* @author Administrator
*/
public class SelectSort {
/**
* 选择排序一个数组。
*/
public static void selectSort(int[] a) {
for (int i = 0; i < a.length - 1; i++) {
int k = selectMinIndex(a, i, a.length - 1);
if (i != k)
Util.swap(a, i, k);
}
}
/**
* 该方法返回数组(下标范围i~j)中最小值的下标。
*/
private static int selectMinIndex(int[] a, int i, int j) {
int minIndex = i;
for (int p = i; p < j; p++)
if (a[minIndex] > a[p + 1])
minIndex = p + 1;
return minIndex;
}
public static void main(String[] args) throws Exception {
if (args.length == 0) {
System.out.println("请输入数字以空格隔开");
System.exit(-1);
}
int[] a = new int[args.length];
for (int i = 0; i < args.length; i++)
a[i] = Integer.parseInt(args[i]);
SelectSort.selectSort(a);
// 输出排序后的数组元素。
for (int i = 0; i < a.length; i++)
System.out.println(a[i]);
}
}
分享到:
相关推荐
直接插入排序 选择排序 堆排序 归并排序 快速排序 冒泡排序等七种排序方法
交换排序 选择排序 冒泡排序 插入排序
选择排序选择排序选择排序选择排序选择排序选择排序选择排序选择排序选择排序选择排序选择排序v
(1) 完成5种常用内部排序算法的演示,5种排序算法为:快速排序,直接插入排序,选择排序,堆排序,希尔排序; (2) 待排序元素为整数,排序序列存储在数据文件中,要求排序元素不少于30个; (3) 演示程序开始,...
插入排序 冒泡排序 堆排序 基数排序 选择排序 快速排序的源码 java实现
C# 插入排序 冒泡排序 选择排序 快速排序 堆排序 归并排序 基数排序 希尔排序
冒泡排序 快速排序 选择排序 二分法排序 插入排序 快速选择排序 递归冒泡排序
对链表进行相应操作 链表为双向链表 其中的操作有 快速排序 选择排序 插入 删除链表 从链表中获取一个数等等 程序并没有测试周全 欢迎下载 若发现问题希望在我CSDN留言 以便及时更改
插入排序 冒泡排序 快速排序 选择排序演示软件
数据结构排序选择排序归并排序基数排序PPT学习教案.pptx
汇编 从大到小排排序 选择排序法 需要 在程序中设置索要排序的数值
插入排序 选择排序 算法插入排序 选择排序 算法插入排序 选择排序 算法插入排序 选择排序 算法
常见经典排序算法(C语言)1希尔排序 二分插入法 直接插入法 带哨兵的直接排序法 冒泡排序 选择排序 快速排序 堆排序.docx
java快速排序 归并排序 冒泡排序 选择排序
选择排序,比较常见的排序算法之一。这是两个例子,两个关于选择排序的例子。
C语言编程的排序方法Shell排序选择排序快速排序冒泡排序.pdf
冒泡排序 选择排序 插入排序 归并排序 快速排序 结构体排序(冒泡排序+结构体的应用) 桶排序 二分查找 DFS深搜 c++基础语法+基础算法 c++算法初阶者使用
本章主要介绍一些常用的排序算法:插入排序、交换排序、选择排序、归并排序和基数排序。这里介绍的排序算法都是基于待排序的数据元素序列构成的线性表采用顺序存储结构,即采用数组存储,并且默认为按关键字非递减...
排序算法汇总P: 冒泡排序快速排序直接选择排序插入排序希尔排序 堆排序........
直接插入排序 直接插入排序(Straight Insertion Sort)是一种简单且古老的排序算法,其基本思想是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。12 直接插入排序的算法过程如下...