博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java算法-选择排序
阅读量:4322 次
发布时间:2019-06-06

本文共 2293 字,大约阅读时间需要 7 分钟。

 选择排序算法特点:

>每一轮找出一个最小值或者最大值,依次放在最前面的位置。在查找的过程中,用当前假定的最小值或者最大值,去跟后面所有的值进行比较。如果小或者大,就把下标给那个假定的值。一轮循环完了之后,再次判断,那个当初假定的最小或者最大,是否在一轮比较之后,发生过变化,如果变化了,那假定的值就不是那一轮比较的最小或者最大,就要进行交换。相比冒泡排序,他在空间上有优势,不需要频繁的交换。

package com.ghostwu;import java.util.Random;class MySelectSort {    private int[] arr;    public MySelectSort(){        arr = new int[10];        Random rand = new Random();        for( int i = 0; i < arr.length; i++ ){            arr[i] = rand.nextInt( 101 );        }    }    public void sort(){        int min;        for( int i = 0; i < arr.length; i++ ){            min = i;            for( int j = i + 1; j < arr.length; j++ ){                if( arr[min] > arr[j] ) {                    min = j;                }            }            if( min != i ) {                    int tmp = arr[min];                    arr[min] = arr[i];                    arr[i] = tmp;            }            display( "第" + ( i + 1 ) + "轮的比较结果: " );        }    }    public void display( String info ){        System.out.println( info );        for( int i = 0; i < arr.length; i++ ){            System.out.print( arr[i] + "\t" );        }        System.out.println();    }}public class SelectSort{    public static void main( String[] args ){        MySelectSort ss = new MySelectSort();        ss.display( "排序之前:" );        ss.sort();        ss.display( "排序之后:" );    }}

执行结果:

ghostwu@dev:~/java/data_struct/sort$ java com.ghostwu.SelectSort 排序之前:83    18    39    98    17    68    77    68    65    2    第1轮的比较结果: 2    18    39    98    17    68    77    68    65    83    第2轮的比较结果: 2    17    39    98    18    68    77    68    65    83    第3轮的比较结果: 2    17    18    98    39    68    77    68    65    83    第4轮的比较结果: 2    17    18    39    98    68    77    68    65    83    第5轮的比较结果: 2    17    18    39    65    68    77    68    98    83    第6轮的比较结果: 2    17    18    39    65    68    77    68    98    83    第7轮的比较结果: 2    17    18    39    65    68    68    77    98    83    第8轮的比较结果: 2    17    18    39    65    68    68    77    98    83    第9轮的比较结果: 2    17    18    39    65    68    68    77    83    98    第10轮的比较结果: 2    17    18    39    65    68    68    77    83    98    排序之后:2    17    18    39    65    68    68    77    83    98

 

转载于:https://www.cnblogs.com/ghostwu/p/9278177.html

你可能感兴趣的文章
LINQ to SQL vs. NHibernate
查看>>
基于Angular5和WebAPI的增删改查(一)
查看>>
windows 10 & Office 2016 安装
查看>>
最短路径(SP)问题相关算法与模板
查看>>
js算法之最常用的排序
查看>>
Python——交互式图形编程
查看>>
经典排序——希尔排序
查看>>
团队编程项目作业2-团队编程项目代码设计规范
查看>>
英特尔公司将停止910GL、915GL和915PL芯片组的生产
查看>>
Maven配置
查看>>
HttpServletRequest /HttpServletResponse
查看>>
SAM4E单片机之旅——24、使用DSP库求向量数量积
查看>>
从远程库克隆库
查看>>
codeforces Unusual Product
查看>>
hdu4348 - To the moon 可持久化线段树 区间修改 离线处理
查看>>
正则表达式的搜索和替换
查看>>
个人项目:WC
查看>>
地鼠的困境SSL1333 最大匹配
查看>>
flume+elasticsearch+kibana遇到的坑
查看>>
【MM系列】在SAP里查看数据的方法
查看>>