栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

排序数组之选择排序-SelectionSort

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

排序数组之选择排序-SelectionSort

        排序是算法中常见的一种操作,而最长见的排序方法有冒泡排序和选择排序。冒泡排序方法简单容易理解,今天我们来看一下选择排序的实现:

        

//这是我直接从IDEA里面复制出来的,可以直接复制这个方法到类中使用


    public static void selectionSort(double[] list){    //这个方法名为selectionSort---选择排序

        for(int i = 0; i  list[j]){    //如果当前值大于数组中下一个位置的值

                    cur = list[j];    //将下一个位置的值和下标赋值都给cur

                    cur_index = j;

                }

            }
----------------------------------------------------------------------------------

            if(cur_index != i){    //如果当前cur的位置发生了改变(i是cur的上一个位置值,cur_index是当前位置)

                list[cur_index] = list[i];//那么将数组中上一个值赋值给当前值

                list[i] = cur;//将临时值赋值给上一个值

            }
        }
    }
}

看起来挺复杂的样子

同学,现在还不需要全部理解,先将其记住,在使用的过程中慢慢理解,才是循序渐进的方法,首先是拿下它。要的就是耐心和保持信心。

我们试着带入数组将其显示化出来每一个大的循环都做了什么

此时大循环对应的i为0:

初始化一个数组里面包含这些值:

2        9        5        4        8        1        6

第一个小循环里面,找出最小值:1

第二个小循环里面,交换最小值与大循环对应的值:

现在:

1        9        5        4        8        2        6

--------------------------------------------------------------------------------

再重复上面的步骤

此时大循环对应的i=1 :

数组里面包含这些值:

1        9        5        4        8        2        6

第一个小循环里面,找出最小值:2

第二个小循环里面,交换最小值与大循环对应的值:

现在:

1        2        5        4        8        9        6

----------------------------------------------------------------------------------------

再重复上面的步骤

此时大循环对应的i=2 :

数组里面包含这些值:

1        2        5        4        8        9        6

第一个小循环里面,找出最小值:4

第二个小循环里面,交换最小值与大循环对应的值:

现在:

1        2          4        5        8        9        6

----------------------------------------------------------------------------------------

再重复上面的步骤

此时大循环对应的i=3 :

数组里面包含这些值:

1        2          4        5        8        9        6

..........

接下来的几个循环

数组变成了

1        2          4        5        6        9        8

又变成了

1        2          4        5        6        8        9

最后由于数列中只剩最后一个数字,排序结束

上面的循环有一部分被省略掉了,那些重复的循环,如果现在不会,试着多去读一些,渐渐地就会清楚。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/294704.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号