排序算法之简单选择排序
来源:互联网 发布:淘宝改库存影响排名吗 编辑:程序博客网 时间:2024/05/01 06:53
基本思想:
将初始序列(A[0]~A[n-1])作为待排序序列,第一趟在待排序序列(A[0]~A[n-1])中找最小值元素,与该序列中第一个元素A[0]交换,这样子序列(A[0])有序;下一趟排序在待排序子序列(A[1]~A[n-1])中进行。第 i 趟排序,A[i-1]~A[n-1] 中,找到最小元素,与该子序列中第一个元素 A[i-1] 交换。经过n-1趟排序后使得初始序列有序。
简单选择排序示例:
代码:
void SelectSort(int A[],int n)//简单选择排序{int small;for(int i=0; i<n; i++){small=i;for(int j=i+1; j<n; j++){if(A[j]<A[small])small=j;}swap(A[i],A[small]);}}
时间复杂度分析:
该算法和初始序列排列无关。无论初始序列如何,该算法都必须执行n-1趟,每趟执行n-i-1次关键字的比较,
这样总的比较次数为:
因此,简单选择排序的最好、最坏和平均时间复杂度都为O(n^2)。
此外,该排序算法经过一趟排序可以确定一个元素的最终位置。简单选择排序是不稳定的排序算法。
参考资料:
《数据结构》 陈慧楠著 人民邮电出版社
0 0
- 算法 排序算法之简单选择排序
- 排序算法之二:选择排序之【简单选择排序】
- 排序算法之简单选择排序
- 排序算法入门之简单选择排序
- 排序算法之简单选择排序
- 常用排序算法之简单选择排序
- 排序算法之简单选择排序
- 经典排序算法之简单选择排序
- 排序算法之简单选择排序
- 排序算法之简单选择排序
- 八大排序算法之简单选择排序
- 排序算法之简单选择排序
- 排序算法之简单选择排序(Java)
- C++简单排序算法之选择排序
- 排序算法入门之简单选择排序
- 排序算法入门之简单选择排序
- 排序算法之简单选择排序
- 常用排序算法之简单选择排序
- 微信聊天
- 直接拿来用!十大Material Design开源项目
- 腾讯再战移动操作系统的野心
- Code::Blocks 的使用
- 豆瓣搜索—微信公共平台接入
- 排序算法之简单选择排序
- V4L2 soc
- php xml dtd 验证
- 【BZOJ 3990】 [SDOI2015]排序
- 模拟设计的100条圣经(汉化版)
- openCV读取摄像头不用读取帧率
- C++从上往下打印出二叉树的每个节点,同层节点从左至右打印(牛客剑指offer)
- cygwin从linux下同步文件,中文文件名乱码
- 【微积分】曲线的长度