Java排序算法2:选择排序
来源:互联网 发布:大阪旅游攻略 知乎 编辑:程序博客网 时间:2024/04/30 15:36
一.思想:
走访数列n-1遍,第一趟从num[0]---num[n]中选取最小(最大)的数,与num[0]交换。第二趟从num[1]---num[n]中选择最小(最大)的数,与num[1]交换......依次类推。
二.例子:
比如5,4,2,3,第一趟比较的过程为:
1.找到num[0]---num[3]的最小的数为2,与num[0]交换,交换后的序列为:2,4,5,3.
第二趟比较过程为:
1.找到num[1]---num[3]的最小的数为3,与num[1]交换,交换后的序列为:2,3,5,4.
第三趟依次类推。
三.实现代码:
public class SelectionSort {public static void main(String args[]){int num[] = {4,3,6,9887,5,3,2,3,1};System.out.print("原始数据:");print(num);sort(num);System.out.print("排序后数据:");print(num);}public static void sort(int num[]){int i,j; //循环变量int flag; //交换变量for(i = 0; i < num.length - 1; ++i){for(j = i + 1; j < num.length; ++j){if(num[i] > num[j]){flag = num[i];num[i] = num[j];num[j] = flag;}}}}public static void print(int num[]){int i;for(i = 0; i < num.length; ++i){System.out.print(num[i]+" ");}System.out.print("\n");}}
四.复杂度与应用:
时间复杂度:O(n*n) 空间复杂度:O(1), 是不稳定的算法。
应用:在大多数情况下都不推荐使用,只有在希望减少交换次数情况下使用,也可以在问题规模小的情况下使用。
五.参考资料:
1.追竹的博客:http://blog.csdn.net/apei830/article/details/6584531
2.百度百科-选择排序法:http://baike.baidu.com/link?url=tw8rCnBJv0jFO4KKBctUGKNpq-ocug0pjvsmGNKztKQ0CPCIEJzqIbv8IOkHWKRADCJSCf2TyKV_GGhI6MgRmK
六:相关排序代码下载:包含(冒泡排序,桶排序,堆排序,插入排序,归并排序,快速排序,基数排序,选择排序,希尔排序)
免积分下载地址:http://download.csdn.net/detail/u014077165/7185895
0 0
- Java排序算法2:选择排序
- 排序算法-选择排序 java
- 算法:排序----Java选择排序
- java 排序算法-选择排序
- Java算法-排序-选择排序
- java 选择排序算法
- java选择排序算法~~~
- java选择排序算法
- java选择排序算法
- java选择排序算法
- java算法:选择排序
- java算法---选择排序
- Java选择排序算法
- Java选择排序算法
- java选择排序算法
- Java选择排序算法
- JAVA-选择排序算法
- Java算法-选择排序
- jq删除页面标签
- 游戏引擎开发系列——消息循环篇
- 苏州理财:收益率宣传低调多了
- SQL使用中一些不为人注意的技巧
- jvisualvm监测JVM
- Java排序算法2:选择排序
- poj 2109 高精度幂和二分查找
- 类似微信陌陌app百万级并发系统源码转让
- 数字图像处理的就业前景
- Android Emulator and Weinre
- Java模拟登录微信平台,主动推送消息给用户,自动绑定url、token等
- Python Twisted介绍
- CentOS-min 操作记录(5)-配置自己的VPN
- U盘UEFI启动制作方法