您的位置:首页 > 其它

简单排序算法

2016-03-22 23:52 246 查看
算法思想:将初始序列(A[0]~A[n-1])作为待排序序列,第一趟在待排序序列(A[0]~A[n-1])中找最小值元素,与该序列中第一个元素A[0]交换,这样的子序列(A[0])有序,下一趟排序在待排序子序列(A[1]~A[n-1])中进行。第i趟排序在待排序子序列(A[i-1]~A[n-1])中,找最小值元素,与该子序列中第一个元素A[i-1]交换。经过n-1趟排序后使得初始化序列有序。

#include<iostream>
using namespace std;
void swap(int *a,int *b)
{
int t;
t=*a;
*a=*b;
*b=t;
}
int main()
{
int a[100];
int i,j,n,small;
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
for(i=0;i<n-1;i++)
{
small=i;//假定每次排序的序列的第一个元素最小
for( j=i+1;j<n;j++)
{
if(a[j]<a[small])
small=j;//存储最小的数位置
}
if(small!=i) //如果第一个元素不是最小的
swap(&a[i],&a[small]);//将每次最小的数与第一个元素进行交换
}
for(i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: