选择排序

简介: 一、选择排序   选择是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

一、选择排序

  选择是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序是一种不稳定的排序算法。

  效果图如下所示:

二、代码

  该算法使用java代码实现,代码如下:

 1     public static void selectSort(int[] data)
 2     {
 3         int arrayLength = data.length;
 4         for (int i = 0; i < arrayLength - 1; i++)// 依次进行arrayLength趟比较, 第i趟比较将第i大的值选出放在i位置上。
 5         {
 6             int minIndex = i;// minIndex永远保留本趟比较中最小值的索引
 7             for (int j = i + 1; j < arrayLength; j++) // 第i个数据只需和它后面的数据比较
 8             {
 9                 if (data[minIndex] > data[j]) // 如果第minIndex位置的数据 > j位置的数据
10                 {
11                     minIndex = j; // 将j的值赋给minIndex
12                 }
13             }
14             if (minIndex != i) // 每趟比较最多交换一次
15             {
16                 int tmp = data[i];
17                 data[i] = data[minIndex];
18                 data[minIndex] = tmp;
19             }
20             System.out.println("第" + (i + 1) + "趟结果如下:" + Arrays.toString(data));
21         }
22     }

  使用21, 30, 49, 45, 16, 9排序每一趟结果如下:

第1趟结果如下:[9, 30, 49, 45, 16, 21]
第2趟结果如下:[9, 16, 49, 45, 30, 21]
第3趟结果如下:[9, 16, 21, 45, 30, 49]
第4趟结果如下:[9, 16, 21, 30, 45, 49]
第5趟结果如下:[9, 16, 21, 30, 45, 49]
目录
相关文章
|
2月前
|
人工智能 搜索推荐 C语言
选择排序
选择排序是一种简单直观的排序算法。其基本思想是每次从未排序部分找到最小(或最大)元素,将其放到已排序部分的末尾,直至所有元素排序完成。示例代码展示了如何使用 C 语言实现选择排序,并对一个整数数组进行排序。
25 5
|
7月前
|
算法 搜索推荐 Java
选择排序就是这么容易
选择排序就是这么容易
41 0
|
8月前
|
人工智能 算法 搜索推荐
2.选择排序
2.选择排序
30 0
|
8月前
|
搜索推荐 C++
C++选择排序的实现
C++选择排序的实现
|
搜索推荐
16 选择排序
16 选择排序
36 0
|
搜索推荐 C语言
选择排序就这么简单
从上一篇已经讲解了冒泡排序了,本章主要讲解的是选择排序,希望大家看完能够理解并手写出选择排序的代码,然后就通过面试了!如果我写得有错误的地方也请大家在评论下指出。
175 0
选择排序就这么简单
|
机器学习/深度学习 搜索推荐 算法
选择排序的实现
选择排序的实现
116 1
|
搜索推荐
【选择排序】直接选择排序 与 堆排序
【选择排序】直接选择排序 与 堆排序
|
算法 搜索推荐 测试技术
直接选择排序
直接选择排序
118 0
直接选择排序

热门文章

最新文章