选择排序法
来源:互联网 发布:2017比较污的网络词语 编辑:程序博客网 时间:2024/04/30 02:49
//file 选择排序.cpp
//选择排序法的基本思想:
// 假设有n个数据放在数组a中,现要把这n个数从小到大排序。
// 首先,在a[0]到a[n-1]的范围内,选出值小元素与a[0]交换;
// 然后在a[1]到a[n-1]的范围内再选出值最小的元素与a[1]交换;
// 依次进行下去,进行n-1次选择后就可完成排序。
#include"iostream.h"
void xuanze_sort(int a[],int len)
{
cout<<"/n/n正在选择排序:/n";
for(int i=0;i<len-1;i++){ //最好和最坏情况下都要进行len-1次选择
int k=i; //准备选择第i个位置的元素,k初始为i
for(int j=i+1;j<len;j++)
if(a[k]>a[j])
k=j; //k指示当前最小值元素的位置,
//for结束后,k指示从a[i]到a[len-1]最小元素的下标
if(k!=i){ //需要交换a[i]和a[k];也许k==i,意思为:原来的a[i]
int temp=a[i]; //就是a[i]到a[len-1]间的最小值,k没有被修改,
//保持其初始化值i
a[i]=a[k];
a[k]=temp;
}
//输出经本次选择后的排序结果,用“|”号作为排好序元素和未排好序元素的分隔号
for(int m=0;m<len;m++){
if(m==i)
cout<<a[m]<<"| ";
else
cout<<a[m]<<" ";
}
cout<<endl;
}//end of for
}
void main(void)
{
int b[]={9,8,-17,6,5,-4,3,2,1,0};
int lenofb=sizeof(b)/sizeof(int);
cout<<"before sort:/n";
for(int i=0;i<lenofb;i++)
cout<<b[i]<<" ";
xuanze_sort(b,lenofb);
cout<<"/nafter sort:/n";
for(i=0;i<lenofb;i++)
cout<<b[i]<<" ";
cout<<endl;
}
//file 选择排序的变形1.cpp
//选择排序法的基本思想:
// 假设有n个数据放在数组a中,现要把这n个数从小到大排序。
// 首先,在a[0]到a[n-1]的范围内,选出值小元素与a[0]交换;
// 然后在a[1]到a[n-1]的范围内再选出值最小的元素与a[1]交换;
// 依次进行下去,进行n-1次选择后就可完成排序。
#include"iostream.h"
void main(void)
{
int b[]={9,8,-17,6,5,-4,3,2,1,0};
int len=sizeof(b)/sizeof(int);
cout<<"before sort:/n";
for(int i=0;i<len;i++)
cout<<b[i]<<" ";
cout<<"/n/n正在选择排序:/n";
for(i=0;i<len-1;i++){ //最好和最坏情况下都要进行len-1次选择
int k=i; //准备选择第i个位置的元素,k初始为i
for(int j=i+1;j<len;j++)
if(b[k]>b[j])
k=j; //k指示当前最小值元素的位置,
//for结束后,k指示从a[i]到a[len-1]最小元素的下标
if(k!=i){ //需要交换a[i]和a[k];也许k==i,意思为:原来的a[i]
int temp=b[i]; //就是a[i]到a[len-1]间的最小值,k没有被修改,
//保持其初始化值i
b[i]=b[k];
b[k]=temp;
}
//输出经本次选择后的排序结果,用“|”号作为排好序元素和未排好序元素的分隔号
for(int m=0;m<len;m++){
if(m==i)
cout<<b[m]<<"| ";
else
cout<<b[m]<<" ";
}
cout<<endl;
}//end of outer for
cout<<"/nafter sort:/n";
for(i=0;i<len;i++)
cout<<b[i]<<" ";
cout<<endl;
}
//file 选择排序的变形2.cpp
//选择排序法的基本思想:
// 假设有n个数据放在数组a中,现要把这n个数从小到大排序。
// 首先,在a[0]到a[n-1]的范围内,选出值小元素与a[0]交换;
// 然后在a[1]到a[n-1]的范围内再选出值最小的元素与a[1]交换;
// 依次进行下去,进行n-1次选择后就可完成排序。
#include"iostream.h"
void main(void)
{
int b[]={9,8,-17,6,5,-4,3,2,1,0};
int len=sizeof(b)/sizeof(int);
cout<<"before sort:/n";
for(int i=0;i<len;i++)
cout<<b[i]<<" ";
cout<<"/n/n正在选择排序:/n";
for(i=0;i<len-1;i++){ //最好和最坏情况下都要进行len-1次选择
for(int j=i+1;j<len;j++)
if(b[i]>b[j]){
int k=b[i];b[i]=b[j];b[j]=k;
}
//输出经本次选择后的排序结果,用“|”号作为排好序元素和未排好序元素的分隔号
for(int m=0;m<len;m++){
if(m==i)
cout<<b[m]<<"| ";
else
cout<<b[m]<<" ";
}
cout<<endl;
}//end of outer for
cout<<"/nafter sort:/n";
for(i=0;i<len;i++)
cout<<b[i]<<" ";
cout<<endl;
}
- 常用排序-选择法排序
- 常见排序-选择法排序
- 排序算法--选择排序法
- 按选择排序法排序。
- 排序模板 选择法排序
- 排序算法--选择排序法
- 排序之选择排序法
- 选择排序法法
- 排序:选择法
- 选择排序法
- 选择法排序
- 选择排序法
- 选择排序法证明
- 选择排序法
- 选择排序法
- 选择排序法
- 选择排序法
- C++ 选择排序法
- 组合问题算法
- linux下的真随机数发生器 产生真随机数
- 走台阶问题算法
- vb的一些问题
- Windows7 解决“您当前无权限访问该文件夹”
- 选择排序法
- 转:BIOS Rootkit实现分析与检测技术研究系列之--IVT Hook
- XAMPP无法启动apache的解决方法
- 在Magento中添加一种费用
- 这里很好哦
- linux命令行抓取网页快照-(xvfb+CutyCapt)
- 我喜欢这里
- openCMS的XML管理
- chrome源码学习之知识体系指南