选择排序
来源:互联网 发布:深圳网络在线教育平台 编辑:程序博客网 时间:2024/05/23 11:11
选择排序(Selection sort)是一种简单直观的排序算法。
基本思路:
选择排序法的第一层循环从起始元素开始选到倒数第二个元素,主要是在每次进入第二层循环之前,先将外层循环的下标赋值给临时变量,接下来进入第二层循环中,如果发现有比这个位置元素更小(或者大)的元素,则将那个更小(或者更大)的元素的下标赋值给临时变量,最后,在退出里层循环后,判断临时变量是否改变,如果临时变量改变啦,则说明,有比当前外层循环位置更小(或者更大)的元素,将这两个位置的元素交换即可。
算法代码如下:
for(int i=0; i<a.length-1; i++){minIndex = i;//无序区的最小数据数组下标for(int j=i+1; j<a.length; j++){//在无序区中找到最小数据并保存其数组下标if(a[j] < a[minIndex]) //对于不同的具体问题,我们只需要改变这里的比较条件即可。{ //现在是直接比较数组元素自身(这种情况是最简单的)minIndex = j;}}if(minIndex != i){//如果不是无序区的最小值位置不是默认的第一个数据,则交换之。temp = a[i];a[i] = a[minIndex];a[minIndex] = temp;}}
下面是一个具体的例子:
public class SelectSort {public static void main(String[] args) {int[] arr = {55,21,-5,0,86,23,9,-100};selectSort(arr);System.out.println("选择排序后:");for(int i=0; i<arr.length; i++){if(i != arr.length-1)System.out.print(arr[i] + ",");elseSystem.out.print(arr[i]);}}//选择排序public static void selectSort(int[] a){int minIndex = 0;int temp = 0;if((a==null)||(a.length==0))return;for(int i=0; i<a.length-1; i++){minIndex = i;//无序区的最小数据数组下标for(int j=i+1; j<a.length; j++){//在无序区中找到最小数据并保存其数组下标if(a[j] < a[minIndex]) //对于不同的具体问题,我们只需要改变这里的比较条件即可。{ //现在是直接比较数组元素自身(这种情况是最简单的)minIndex = j;}}if(minIndex != i){//如果不是无序区的最小值位置不是默认的第一个数据,则交换之。temp = a[i];a[i] = a[minIndex];a[minIndex] = temp;}}}}/*程序输出如下:选择排序后:-100,-5,0,9,21,23,55,86*/
0 0
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序:
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 获取app versionCode版本号
- 第6章 JSP内建对象讲解及实例讲解
- storm集群的安装和部署
- 百天实习记 ---2015南京南大富士通实习感想
- IOS-- UIView中的坐标转换
- 选择排序
- 华为OJ(字符统计)
- 用PSTSDK读取OUTlOOK中的邮件
- ns3 dce 2层报文发送流程
- TabLayout android Tab的一种实现方式
- 曾经的笔记迁移__结构体和typedef
- mt7620 有线连接
- Android开发学习笔记:圆角的Button
- adb shell [你的命令]在设备上执行成功,在pc上调用却失败原因分析