package com.tw.ds.sort;
/**
* <p>选择排序法
* 选择排序算法的一般策略:搜索整个值列,以找到最小值。
* 将该值与值列中第一个位置上的值进行交换。搜索剩下的值列(第一个除外),以找到其中的最小值,
* 然后将其与值列中第二个位置上的值进行交换。对值列中的每个位置重复该过程。
* 在算法结束时,就完成了对值列的排序。
* </p>
* @author tangw 2010-11-22
*
*/
public class SelectSortMain {
/**
* 主方法
* @param args
*/
public static void main(String[] args) {
int ar[] ={12,88,10,2,3,5,6,11,3};
selectSort(ar);
for( int i=0;i<ar.length;i++){
System.out.println("---i="+i+" values:"+ar[i]);
}
}//end method main
/**
* <p>选择排序方法</p>
* @param arData
*/
public static void selectSort(int[] arData){
int len = arData.length;
for(int i=0;i<len;i++){//外循环
//最小值索引
int minIndex = i;
for(int j=i+1;j<len;j++){//内循环 arData[i]后的值
if( arData[j]<arData[minIndex] ){
minIndex = j;
}
}
//替换 将最小的值与当前arData[i]的值替换
if( i!= minIndex){
int temp = arData[i];
arData[i] = arData[minIndex];
arData[minIndex]=temp;
}
}
}//ebd method selectSort
}
分享到:
相关推荐
算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法...
Java代码-排序-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序中部分排序以及算法-贪心法,大家可以将源码下载下来进行学习,附带着注释和解释,有不理解的可以找博主一起探讨,共同...
6--[scratch算法练习-选择排序].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码6--[scratch算法练习-选择排序].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码6--[scratch算法练习-选择排序]....
文件包括以下子文件,每个文件里面包括了一定数量的ppt,doc,c++模板代码,希望对算法的入门的学习者有用。(注:其中多数文件是download它人的,本人只是将其整理) 00-经典错误 0-广度优先搜索 0-深度优先搜索 1-...
我写的一个内排序的博客算法的一个总结,全部代码在这个里面,需要的就看看吧!!还需要什么请联系我,我有就发!!
该程序包含7大排序算法: # sort.bubbleSort() #冒泡排序 # sort.shellSort() #希尔排序 ...该排序算法把每次的排序结果都列出来,可供初学者学习。 self.arr存放的是待排序列表,可改成自己的数据
该资源提供了入门级别的C++算法练习,旨在帮助读者学习和理解冒泡排序算法。文档中包含了冒泡排序的基本原理和实现方法,并提供了详细的代码示例和解析。 通过学习和完成这个练习,读者将能够掌握冒泡排序算法的...
该资源是一个入门级别的C++算法练习,旨在帮助读者学习和理解希尔排序算法。文档中包含了希尔排序的基本原理和实现方法,并提供了详细的代码示例和解析。 通过学习和完成这个练习,读者将能够掌握希尔排序算法的...
该资源是一个入门级别的C++算法练习,旨在帮助读者学习和理解堆排序算法。文档中包含了堆排序的基本原理和实现方法,并提供了详细的代码示例和解析。 通过学习和完成这个练习,读者将能够掌握堆排序算法的思想和...
呵呵,传上来供大家学习使用~8种排序算法 包括:选择排序 冒泡排序 快速排序 等~~
大数据-算法-排序学习损失函数的研究.pdf
Java语言实现的选择排序算法,代码里头有详细注释,注释皆为简单英文,因为这个算法比较简单,欢迎新手下载学习使用,欢迎后期的学习交流!
本书在简要回顾了基本的C++ 程序设计概念的基础上,全面系统地介绍了队列、堆栈、树、图等基本数据结构,以及贪婪算法、分而治之算法、分枝定界算法等多种算法设计方法,为数据结构与算法的继续学习和研究奠定了一...
实现直接插入排序、折半插入、冒泡、快速、直接选择、堆、归并排序算法。比较各种 算法的运行速度和时间复杂度,是否为稳定排序。分析每一趟排序结果。
学习数组使用,用数组下标进行选择排序,用双循环实现选择排序。 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的...
26常用算法的应用-排序算法.mp4 27常用算法的应用-查找算法.mp4 28常用算法的应用-级数算法.mp4 29常用算法的应用-利用循环语.mp4 30常用算法的应用-整数各数位.mp4 31常用算法的应用-矩阵转置.mp4 32常用算法的应用...
各种常用的排序算法,c++泛型实现,对于学习排序算法以及c++泛型编程都是很好的材料
排序算法学习报告.doc