C++之选择排序算法
2016-03-29 15:44
246 查看
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
选择排序是不稳定的排序方法
选择排序便于理解,第一趟,找出最小值与第一个元素交换
第二趟,从第二个元素开始,找出最小值与第二个元素交换
第三趟,从第三个元素开始,找出最小值与第三个元素交换
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
void Output(int val)
{
cout<<val<<' ';
}
int main()
{
vector<int>myvec;
myvec.push_back(23);
myvec.push_back(223);
myvec.push_back(243);
myvec.push_back(223);
myvec.push_back(323);
myvec.push_back(723);
myvec.push_back(233);
myvec.push_back(523);
myvec.push_back(253);
for(unsigned int i=0;i<myvec.size();i++)//选择排序
{
for(unsigned int j=i+1;j<myvec.size();j++)
{
int k=i;
if(myvec[j]<myvec[k])
{
k=j;
}
if(k!=i)
{
int temp=myvec[i];
myvec[i]=myvec[k];
myvec[k]=temp;
}
}
}
for_each(myvec.begin(),myvec.end(),Output);
system("pause");
}
选择排序是不稳定的排序方法
选择排序便于理解,第一趟,找出最小值与第一个元素交换
第二趟,从第二个元素开始,找出最小值与第二个元素交换
第三趟,从第三个元素开始,找出最小值与第三个元素交换
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
void Output(int val)
{
cout<<val<<' ';
}
int main()
{
vector<int>myvec;
myvec.push_back(23);
myvec.push_back(223);
myvec.push_back(243);
myvec.push_back(223);
myvec.push_back(323);
myvec.push_back(723);
myvec.push_back(233);
myvec.push_back(523);
myvec.push_back(253);
for(unsigned int i=0;i<myvec.size();i++)//选择排序
{
for(unsigned int j=i+1;j<myvec.size();j++)
{
int k=i;
if(myvec[j]<myvec[k])
{
k=j;
}
if(k!=i)
{
int temp=myvec[i];
myvec[i]=myvec[k];
myvec[k]=temp;
}
}
}
for_each(myvec.begin(),myvec.end(),Output);
system("pause");
}
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- 开始使用 Roland 吧,一款命令行随机选择工具
- Tomcat端口被占用解决方法(不用重启)
- 如何选择路由协议
- 接入路由器的几种选择
- C#选择排序法实例分析
- Lua和C语言的交互详解
- 编程界主流脚本编程语言的比较和选择
- 选择MySQL数据库进行连接的简单示例
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C语言自动生成enum值和名字映射代码
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法