选择排序算法
来源:互联网 发布:莱特币开发源码 编辑:程序博客网 时间:2024/05/22 13:39
选择排序算法也是比较简单的一种交换排序算法,原理是:每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。选择排序算法百度百科
#include <stdio.h>/* 选择排序算法 * 待排序序列:(3,5,6,2,4,9) * *第一趟:2,(5,6,3,4,9) *第二趟:2,3, (6, 5, 4, 9) * 第三趟:2, 3, 4, (5, 6, 9) *第四趟:2,3,4,5, (6, 9) * 第五趟:2,3,4,5,6, (9) * 第六趟:(2,3,4,5,6,9) */ void fun(int a[],int n){int i,j,k,t,x;for(i=0;i<n-1;i++){k=i; //锁定序列的第一个未排序元素 for(j=i+1;j<n;j++){if(a[j]<a[k]){k=j; // 找到剩下的序列中最大或最小的元素,交换下标 }}if(i!=k) // 若不等于未排序第一个元素,交换元素 {t=a[i];a[i]=a[k];a[k]=t;}}}int main(){int i,a[6]={3,5,6,2,4,9};fun(a,6);for(i=0;i<6;i++)printf("%d ",a[i]);}选择排序算法是不稳定的,如{3,3,1},第一次就交换第一个3与1的位置,打乱了原来的相同元素的位置,平均时间复杂度是O(n^2),最坏也是O(n^2),最好也是O(n^2)。
0 0
- 排序算法-选择排序
- 排序算法-选择排序
- 排序算法--选择排序
- 排序算法---选择排序
- 排序算法-选择排序
- 排序算法-选择排序
- 排序算法-选择排序
- 排序算法---选择排序
- 排序算法--选择排序
- 排序算法--选择排序
- 排序算法--选择排序
- 排序算法--选择排序
- 算法-排序-选择排序
- 排序算法:选择排序
- 排序算法---选择排序
- 排序算法:选择排序
- 排序算法--选择排序
- 算法排序 -- 选择排序
- Protobuf C++ 编译
- SVN搭建和使用
- Linux笔记三 之 系统命令
- 前端小白训练营DAY5
- Java反射
- 选择排序算法
- MD5加密
- Java 反射(二)
- coonie的店—我的淘宝店
- struts2使用拦截器完成登陆显示用户信息操作
- Java内存分配、管理小结
- 冒泡排序
- struts2之OGNL和struts2标签库
- C++中的面向对象06.多态