经典排序算法(6)——直接选择排序算法详解
来源:互联网 发布:金税盘开票软件更新 编辑:程序博客网 时间:2024/06/04 00:50
直接选择排序(Straight Select Sort)是一种典型的选择排序算法,通过不断选择序列中最大(小)的元素。
一、算法基本思想
(1)基本思想
直接选择排序的基本思想就是:不断从未排序队列中选择最大(小)的元素放到已排序队列队尾,直至所有元素都排好序。
(2)运行过程
直接选择排序算法的运作如下:
1、首先在原始序列中找到最小(大)元素,存放到排序序列的起始位置
2、再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
3)重复第二步,直到所有元素均排序完毕。
(3)示例
二、算法实现(核心代码)
C++实现:
void selection_sort(int arr[], int len){ int i, j, min; for (i = 0; i < len - 1; i++) { min = i; for (j = i + 1; j < len; j++) if(arr[min] > arr[j]) min = j; swap(arr[i], arr[min]); }}
Java实现:
public void selection_sort(int[] arr) {int i, j, min, temp, len = arr.length;for (i = 0; i < len - 1; i++) {min = i;for (j = i + 1; j < len; j++)if (arr[min] > arr[j])min = j;temp = arr[min];arr[min] = arr[i];arr[i] = temp;}}
三、性能(算法时间、空间复杂度、稳定性)分析
直接选择排序平均时间复杂度为O(n^2);空间复杂度为O(1);是不稳定的排序算法。
原始序列: 21,25,49,25*,16,08
排序后:08,16, 21,25*,25,49
两个25的位置变化了,所以是不稳定的。
1 0
- 经典排序算法(6)——直接选择排序算法详解
- 经典排序算法——直接选择排序
- 经典算法之选择排序(直接选择、堆排序)
- 经典算法学习——直接选择排序
- 排序算法——直接选择排序
- 经典排序算法(3)——直接插入排序算法详解
- 经典排序算法——选择排序
- 排序算法之——直接选择排序(三)
- 经典算法之直接选择排序
- 直接选择排序算法
- 直接选择排序算法
- 直接选择排序算法
- 直接选择排序算法
- 直接选择排序算法
- 直接选择排序算法
- 排序算法(二):直接选择排序
- 排序算法-------直接选择排序
- 排序算法Java实现——选择排序(直接选择排序)
- PCB布线面试题
- Maven全解
- Hadoop Shell 讲解
- C#动态创建类实例并调用
- System获取时间函数代码
- 经典排序算法(6)——直接选择排序算法详解
- LIS O(nlgn)最简写法
- eclipse下,tomact jar包存在 但是无法解析导入 javax.servlet 的问题与解析
- 【springmvc (六)】 使用log4j 日志
- 2015-2016年全国计算机专业大学排名
- HBase源码分析之Region定位
- QQ音乐与网易云音乐的比较
- 经典排序算法(7)——堆排序算法详解
- 建筑公司员工财务数据库分析