一、选择排序思想:
选择排序的思想是:首先将第一个位置的元素标记为最小,依次与后面的元素比较,当发现比第一个元素更小的元素时,将那个元素标记为最小,然后用最小的这个元素继续与后面的元素比较,直到最后,然后将第一轮比较中最小的元素,与第一个元素交换位置。
接下来,进行第二轮循环,再以第二个元素作为起点,将其标记为最小,因为第一个元素已经排好了位置。依然按照上面的方法比较。依次类推,直到将所有最小的元素选择出来,与前面的交换。所以叫做选择排序。
二、选择排序算法Java描述
package com.solid.array;
public class SelectSort {
//数组对象
private long[] arr;
//数组元素个数
private static int nElems;
/**
* 构造方法
* @param max
*/
public SelectSort(int max) {
arr = new long[max];
nElems = 0;
}
/**
* 插入元素
* @param value
*/
public void insert(long value) {
arr[nElems] = value;
nElems++;
}
/**
* 选择排序算法
*/
public void selSort() {
int min; //用于标记最小的下标
for(int i=0; i<nElems-1; i++) {
min = i;
for(int j=i+1; j<nElems; j++) {
if(arr[j] < arr[min]) {
min = j;
}
}
if(min != i) {
long temp = arr[min];
arr[min] = arr[i];
arr[i] = temp;
}
}
}
/**
* 显示数组中的所有元素
*/
public void display() {
for(int i=0; i<nElems; i++) {
System.out.print("arr["+i+"]=" + arr[i] + " ");
}
System.out.println();
}
}
分享到:
相关推荐
(1) 完成5种常用内部排序算法的演示,5种排序算法为:快速排序,直接插入排序,选择排序,堆排序,希尔排序; (2) 待排序元素为整数,排序序列存储在数据文件中,要求排序元素不少于30个; (3) 演示程序开始,...
冒泡排序 简单选择排序 c语言基础 排序算法 数组操作 排序算法实验 简单的c语言程序 排序算法输出
实现以下常用的内部排序算法并进行性能比较:"直接插入排序"," 折半插入排序"," 2—路插入排序"," 表插入排序"," 希尔排序"," 起泡排序"," 快速排序"," 简单选择排序"," 树形选择排序"," 堆排序"," 归并排序"," 链式...
希尔排序,堆排序,快速排序,简单选择排序,插入排序,冒泡排序
冒泡排序,选择排序,插入排序,希尔排序,堆排序,归并排序,快速排序源码实现,里面有详细讲解,对新手应该有帮助
7大排序算法(快速排序,冒泡排序,选择排序,归并排序,插入排序,希尔排序,堆排序)实现源码
六种内部排序算法比较:直接插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序。包含实验报告和源代码设计。
C语言所有排序大全,解决了您日常上课考试学习的需要,在这里每一个程序都没有错误,其中压缩包包括了归并排序;基数排序;...选择排序;折半排序;希尔排序这些日常排序,因为是全集所以大家踊跃下载
选择排序之简单选择排序.cpp
排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序.mht
24、简单选择排序 21、折半插入排序 22、冒泡排序 23、快速排序 24、简单选择排序 25、归并排序 26、堆排序 21、折半插入排序 22、冒泡排序 23、快速排序 24、简单选择排序 25、归并排序 21、折半插入排序 22、...
JAVA排序算法: 直接插入,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序,包括算法的详细介绍,以及对几种算法的详细测试
以单链表为存储结构实现简单选择排序的算法
这是我的博客 《漫谈经典排序算法:一、从简单选择排序到堆排序的深度解析》中涉及到的源代码,详细解析请关注本人博客 http://blog.csdn.net/Touch_2011
常见的几种排序方式,包括选择排序,冒泡排序,快速排序,希尔排序,堆排序,插入排序。vs2008实现,对话框方式,主要实现字符串的由小到大排序。点击“几种排序方法.vcproj“运行。字符集使用多字节集,不能用...
冒泡排序、快速排序、简单插入排序、希尔排序、简单选择排序、堆叠排序六种数据结构必考的排序方式理解
10种排序算法代码+综合比较代码(直接插入排序、希尔排序、冒泡排序、快速排序、简单选择排序、堆排序、归并排序、基数排序、折半插入排序、2路插入排序),其中不仅有各种排序算法的代码,还包含10种代码在关键字...
C# 常用经典算法,选择排序 冒泡排序 快速排序 插入排序 希尔排序
简单选择排序
讲解了选择排序的基本原理,并用C++实现了简单选择排序,和堆排序算法,并进行了算法复杂度的分析。