简单选择排序
来源:互联网 发布:姓名贴软件下载 编辑:程序博客网 时间:2024/06/05 14:44
简单选择排序
适用情况:常用于取序列中最大最小的几个数时。
(如果每次比较都交换,那么就是交换排序;如果每次比较完一个循环再交换,就是简单选择排序。)
简单选择排序的示例:
步骤:
- 遍历整个序列,将最小的数放在最前面。
- 遍历剩下的序列,将最小的数放在最前面。
- 重复第二步,直到只剩下一个数。
如何写成代码:
- 首先确定循环次数,并且记住当前数字和当前位置。
- 将当前位置后面所有的数与当前数字进行对比,小数赋值给key,并记住小数的位置。
- 比对完成后,将最小的值与第一个数的值交换。
- 重复2、3步。
代码实现如下:
public class SelectSort {public static void main(String[] args) {int a[] = { 3, 1, 5, 7, 2, 4, 9, 6, 10, 8 };SelectSort obj = new SelectSort();System.out.println("初始值:");System.out.println(Arrays.toString(a));obj.selectSort(a);System.out.println("\n排序后:");System.out.println(Arrays.toString(a));}void selectSort(int a[]) {int min;for (int i = 0; i < a.length; i++) {min = i; // 最小值小标,每次循环最小值下标加1for (int j = i + 1; j < a.length; j++) {if (a[j] < a[min]) {min = j;}}if (i != min)swap(a, min, i);}}void swap(int a[], int i, int j) {a[i] = a[i] + a[j];a[j] = a[i] - a[j];a[i] = a[i] - a[j];}}
简单选择排序的改进——二元选择排序
简单选择排序,每趟循环只能确定一个元素排序后的定位。我们可以考虑改进为每趟循环确定两个元素(当前趟最大和最小记录)的位置,从而减少排序所需的循环次数。改进后对n个数据进行排序,最多只需进行[n/2]趟循环即可。具体实现如下:
阅读全文
0 0
- 选择排序-简单选择排序
- 【选择排序】简单选择排序
- 选择排序-简单选择排序
- 选择排序-简单选择排序
- 选择排序------简单选择排序
- 选择排序--简单选择排序
- 选择排序-简单选择排序
- 选择排序-简单选择排序
- 排序 -- 简单选择排序
- 排序-简单选择排序
- 排序。。。简单选择排序
- 简单排序---选择排序
- 简单排序:选择排序
- 排序-简单选择排序
- 【排序】简单选择排序
- 排序:简单选择排序
- 简单排序--选择排序
- 简单排序:选择排序
- 数组、List和ArrayList的区别
- 清楚C盘中的临时文件user AppData Local Temp
- Vim 总结(一)
- Vim 总结(二)
- 排序方法之归并
- 简单选择排序
- 二叉树的遍历(完结)
- Android笔记三:Android 接口定义语言 (AIDL)--传递对象
- Python3文件的简单操作!
- 集合
- 4.1.2--求函数最值—Strange fuction
- ionic2环境搭建踩坑记
- 关于生命周期的学习和小思考
- Java内存模型-开端