二元选择排序
来源:互联网 发布:sqlserver 循环 编辑:程序博客网 时间:2024/06/05 05:40
二元选择排序
简单选择排序,每趟循环只能确定一个元素排序后的定位。我们可以考虑改进为每趟循环确定两个元素(当前趟最大和最小记录)的位置,从而减少排序所需的循环次数。改进后对n个数据进行排序,最多只需进行[n/2]趟循环即可
就是每次从剩下的值中选出最大值和最小值,然后分别放在前面和后面
#include<stdio.h>#include<iostream>using namespace std;void print(int a[],int n){ for(int i =0;i<n;i++) { if(i!=n-1) cout<<a[i]<<" "; else cout<<a[i]<<endl; }}void two_select_sort(int a[],int n){ int min,max,temp; for(int i = 1;i <=n/2;i++) { min = i;max = i; for(int j = i+1;j<n-i;j++) { if(a[j]>a[max])//选出最大值的下标 max = j;continue; if(a[j]<a[min])//选出最小值的下标 min = j; } cout<<min<<":"<<max<<endl; // 每次将最小值放在前面,最大值放在后面 temp = a[i-1];a[i-1] = a[min];a[min] = temp; temp = a[n-i];a[n-i] = a[max];a[max] = temp; print(a,n); }}int main(){ int a[10]={2,13,4,6,7,11,8,5,9,3}; two_select_sort(a,10); return 0;}
阅读全文
0 0
- 选择排序-二元选择排序
- 二元选择排序法
- 二元选择排序
- 二元选择法排序
- 二元选择排序
- 二元选择排序
- 二元选择排序
- 二元选择排序
- 选择排序改进(二元选择排序)
- 简单选择排序和二元选择排序
- 排序算法之二元选择排序
- 八大排序算法之二元选择排序
- 排序算法——二元选择排序
- OJ刷题之《二元选择排序》
- 刷题——二元选择排序
- 算法基础之----二元选择排序
- Binary Selection Sort(二元选择排序)
- 简单选择排序的改进——二元选择排序
- [POJ](1426)Find The Multiple(Special Judge) ---bfs
- 算法导论学习1
- hdu 6183 【线段树的巧妙】
- 电商系统
- Tomcat:`#`不是内部或外部命令,也不是可运行的程序或批处理文件
- 二元选择排序
- mac下安装VMware以及Ubuntu
- JavaScript标准教程之基本语法
- js操作dom节点,创建,复制,删除,添加,查找等操作总结
- 第二十四节MySQL
- Android Studio Jni
- Dynamic Programming:303. Range Sum Query
- java——笔试题记录
- 括号配对(stack栈)