选择排序
来源:互联网 发布:大话数据结构知乎 编辑:程序博客网 时间:2024/05/17 19:20
基本思想
- 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
- 选择排序的思想其实和冒泡排序有点类似,都是在一次排序后把最小的元素放到最前面,或者将最大值放在最后面。但是过程不同,冒泡排序是通过相邻的比较和交换。而选择排序是通过对整体的选择,每一趟从前往后查找出无序区最小值,将最小值交换至无序区最前面的位置。
代码实现
c版本
#include<stdio.h>int main(){ int i,n; int a[100]; scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&a[i]); SelectionSort(a,n); for(i=1;i<n;i++) printf("%d ",a[i]); printf("%d",a[n]); return 0;}void SelectionSort(int k[],int n){ int i,j,flag; int temp; for(i=1;i<=n-1;i++) { flag=i; for(j=i+1;j<=n;j++) if(k[j]<k[flag]) flag=j; if(flag!=i) { temp=k[flag]; k[flag]=k[i]; k[i]=temp; } }}
c++版本
#include<iostream>#include <algorithm>using namespace std;int main(){ void SelectionSort(int k[],int n); int i,n; int a[100]; cin>>n; for(i=1;i<=n;i++) cin>>a[i]; SelectionSort(a,n); for(i=1;i<n;i++) cout<<a[i]<<" "; cout<<a[i]<<endl; return 0;}void SelectionSort(int k[],int n){ int i,j,flag; int temp; for(i=1;i<=n-1;i++) { flag=i; for(j=i+1;j<=n;j++) if(k[j]<k[flag]) flag=j; if(flag!=i) swap(k[flag],k[i]); }}
阅读全文
0 0
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序:
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 课堂随记20170626
- 机器学习:GBDT和XGBoost的区别
- DXP
- Java中String,StringBuffer,StringBuilder之间的区别
- [LeetCode]路径和
- 选择排序
- Markdown 学习
- XL3常用MAC使用快捷键及使用技巧
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)
- HDU 2588 数论 欧拉函数
- LeetCode hard 4. Median of Two Sorted Arrays
- jquery对表单元素的取值和赋值
- bzoj 3444: 最后的晚餐
- LeetCode:Path Sum II