简单选择排序(Simple Selection Sort)
来源:互联网 发布:杭州软件行业排名 编辑:程序博客网 时间:2024/06/07 01:32
简单选择排序就是通过n-i次关键字之间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录交换之。
代码如下:
#include <iostream>using namespace std;void Swap(int *L, int i, int j){ int temp = L[i]; L[i] = L[j]; L[j] = temp;}void SelectSort(int *L, int n){ int i,j,min; for (i=0; i<n-1; i++) { min = i; for (j=i+1; j<n; j++) { if (L[min] > L[j]) { min = j; } } if (i != min) { Swap(L,i,min); } }}int main(){ int L1[9] = {9,1,5,8,3,7,4,6,2};SelectSort(L1,9);for (int i = 0; i<9; i++){cout<<L1[i]<<" ";}cout<<endl;getchar();return 0;}
结果:
简单选择排序最大的特点是交换移动数据次数相当少,这样也就节约了相应的时间。分析它的时间复杂度发现,无论最好最差的情况,其比较次数都是一样的多,第趟排序需要进行n-i次关键字的比较,此时需要比较n(n-1)/2次。而对于交换次数而言,当最好的时候,交换次数为0,最差的时候,也就是初始降序时,交换次数为n-1次,基于终的排序时间是比较和交换次数总和,因此,总的时间复杂度为O(n^2)。
应该说,尽管与冒泡排序同为O(n^2),但简单选择排序的性能上还是要优于冒泡排序。
- 简单选择排序(Simple Selection Sort)
- 简单选择排序(Simple Selection Sort)
- 简单选择排序(Simple Selection Sort)
- 简单选择排序练习(Simple Selection Sort)
- 简单选择排序(Simple Selection Sort)
- 简单选择排序(simple Selection Sort)
- Simple Selection Sort(简单选择排序)
- 选择排序—简单选择排序(Simple Selection Sort)
- 选择排序—简单选择排序(Simple Selection Sort)
- 排序之简单选择排序(Simple Selection Sort)
- 数据结构基础(9)------------简单选择排序(Simple Selection Sort)
- 简单选择排序算法(Simple Selection Sort) Java实现
- 冒泡排序(bubble sort)、直接插入排序(straight insertion sort)、简单选择排序(simple selection sort)
- 排序算法之 简单选择排序算法(Simple Selection Sort):(Python)
- PHP实现排序算法----简单选择排序(Simple Selection Sort)
- 数据结构 - 简单选择排序(simple selection sort) 详解 及 代码(C++)
- 简单选择排序(Selection Sort)
- 选择排序(selection sort)
- 单链表的逆转 C语言
- js将onclick 放到js文件中
- Windows7下修改驱动器号或卷标
- javascript控制html里的元素样式
- Windows 下 使用TortoiseGit GitHub
- 简单选择排序(Simple Selection Sort)
- Android Daylight savings time设置问题
- state代替if-else
- ORACLE分区表的使用和管理
- GetView()原理
- Socket网络编程
- Centos_DHCP+NAT.sh
- 三相异步电动机矢量控制机械特性曲线?
- android4.0 开机启动