选择排序法的优化
来源:互联网 发布:淘宝鱼塘是什么意思 编辑:程序博客网 时间:2024/04/30 20:59
百度百科给的代码
void select_sort(int*a,int n){register int i,j,min,t;for(i=0;i<n-1;i++){min=i;//查找最小值for(j=i+1;j<n;j++)if(a[min]>a[j])min=j;//交换if(min!=i){t=a[min];a[min]=a[i];a[i]=t;}}}
优化后:
void SelectSort(int r[],int n) //n为数组元素个数{ int i ,j , min ,max, tmp; for (i=0 ;i <n/2;i++) /*做不超过n/2趟选择排序,这样可以节约一半的时间*/{ min = i; max = i ; for (j= i+1; j<= n-i-1; j++){ if (r[j] > r[max]){ max = j ; continue ; } if (r[j]< r[min]) { min = j ; } }<span style="white-space:pre"></span>//先处理最小值tmp = r[i]; r[i] = r[min]; r[min] = tmp;<span style="white-space:pre"></span>//交换后最大值位置需要重新定位 if(i==max) max=min;tmp = r[n-i-1]; r[n-i-1] = r[max]; r[max] = tmp;} }运行结果
0 0
- 选择排序法的优化
- 选择排序法的优化
- 选择排序的优化
- 优化的选择排序
- 层层优化的选择排序
- 选择排序的优化算法
- 冒泡排序和选择排序以及选择排序的优化
- 选择排序法及其优化
- 选择排序法及其优化
- 优化的选择排序和折半查找法
- 直接选择排序和它的优化
- 优化的选择排序——SelectionSortSecond
- 选择排序极其优化
- 选择排序优化算法
- 选择排序及其优化
- 选择排序及优化
- 选择排序和冒泡排序算法的优化
- 排序算法之选择和插入排序的简单优化
- P2P中DHT网络介绍
- hibernate generator class="" id详解
- Linux Ubuntu快速安装Qt5.3.1 及编译器设置
- ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
- matlab 学习
- 选择排序法的优化
- android布局及常见布局属性 二
- PHP empty(),isset()与is_null()的实例测试
- ubuntu各文件目录作用以及启动流程
- pixel clock
- 使用internal(com.android.internal)和hidden(@hide)APIs – Part 1
- 08主界面布局的实现和点击事件的添加
- [LeetCode] Palindrome Partitioning
- 虚拟字符设备的完整制作过程 模块源代码,应用,编译所有步骤均有详细介绍