文档章节

基本算法--选择排序

阿信sxq
 阿信sxq
发布于 2016/07/07 16:12
字数 225
阅读 27
收藏 0

选择排序就是要不断在剩下的数据中找出最小(大)的数放在前面,直到最后

 


public class SelectSort {

    /**
     * 原理:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;
     * 然后在剩下的数当中再找最小的与第二个位置的数交换,
     * 如此循环到倒数第二个数和最后一个数比较为止。
     *
     *
     * @param args
     */
    public static void main(String[] args) {
        int a[] = { 49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 5, 4, 62,
                99, 98, 54, 56, 17, 18, 23, 34, 15, 35, 25, 53, 51 };
        int position = 0;
        for (int i = 0; i < a.length; i++) {
            // 默认的最小的下标
            position = i;
            // 找出最小的
            for (int j = i + 1; j < a.length; j++) {
                if (a[j] < a[position]) {
                    position = j;
                }
            }
            // 交换
            if (position != i) {
                int temp = a[position];
                a[position] = a[i];
                a[i] = temp;
            }
        }

        System.out.println(Arrays.toString(a));

    }

}

 

© 著作权归作者所有

阿信sxq

阿信sxq

粉丝 228
博文 83
码字总数 73652
作品 1
成都
后端工程师
私信 提问
加载中

评论(1)

小鱼丁
小鱼丁
哈哈哈,大学学过耶~
直接选择排序(Straight Selection Sort)

1、定义 选择排序(Selection Sort)的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。 常用的选择排序方法有直接选择排序...

野渡书生
2016/05/03
6
0
Java常用算法解析及示例(一)

1.冒泡排序 冒泡算法的主要逻辑是,假设有N个数,游标从第一位数开始,若左边的数比右边的数大,则左边交换,游标移向下一位直到最后一位。 在游标移动过程中,可以保证,右边的数一定比左边...

魔都太阳神
2018/06/15
0
0
浅解前端必须掌握的算法(二):简单选择排序

前言 虽然前端面试中很少会考到算法类的题目,但是你去大厂面试的时候就知道了,对基本算法的掌握对于从事计算机科学技术的我们来说,还是必不可少的,每天花上 10 分钟,了解一下基本算法概...

程序猿何大叔
2018/06/25
0
0
排序算法篇_选择排序法

image   选择排序(Selection Sort)也是比较简单的排序算法,思路也比较直观。选择排序算法在每一步中选取最小值来重新排列,从而达到排序的目的。 选择排序算法 选择排序算法通过选择和交...

一笑小先生
2018/01/30
0
0
【算法】——选择排序

前言: 近期很多时间用来学习算法上了,之前每一次学习算法都是纸上谈兵,打嘴炮,看看,说说,以为思路搞清楚了就万事大吉了,不去理会大家说的一定要去自己做,动手就想着我动手了啊,我明...

R_s_x
2017/09/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Disable Autostart of MySQL Server on Ubuntu

OSC Markdown Editer 真香,笔记一篇,懒得转中文,如有表述问题,请不吝指出,先谢为敬! OS: Ubuntu 19.04 When the MySQL server is installed, it automatically started with the OS. I...

Iridium
7分钟前
0
0
OpenStack RDO + S3

Packstack(RDO) installation "sync db timeout" issue version: openstack-packstack-13.0.0-0.1.0rc1.el7.noarchopenstack-packstack-puppet-13.0.0-0.1.0rc1.el7.noarch add timeout =>......

Firxiao
9分钟前
0
0
java运算符的优先级

https://www.cnblogs.com/zjfjava/p/5996666.html

南桥北木
14分钟前
0
0
线性代数的静态观-向量空间(一)

向量是一个具有大小和方向的量,因此只要大小与方向相同则向量也相同,从而向量可以自由平行移动。 向量与点不同,它反映的是从A到B的位移(既包含位移的方向又包含位移的大小),而点仅仅是...

FAT_mt
15分钟前
0
0
Redis缓存穿透、缓存雪崩和缓存击穿

Redis缓存穿透、缓存雪崩 缓存雪崩,是指在某一个时间段,缓存集中过期失效。 产生雪崩的原因之一,比如在写本文的时候,马上就要到双十二零点,很快就会迎来一波抢购,这波商品时间比较集中...

architect刘源源
37分钟前
10
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部