算法——排序算法(二)
选择排序
选择排序,选择所有元素中最小的一个放在第一位,然后从剩下的元素中选择最小的放第二位,依此类推,完成选择排序。
#include<iostream>
#define M 10001
using namespace std;
int a[M];
void SelectSort(int n)
{
int min;
for(int i=1;i<=n;i++)
{
min=i;
for(int j=i+1;j<=n;j++)
{
if(a[j]<a[min])
{
min=j;
}
}
int t=a[i];
a[i]=a[min];
a[min]=t;
}
}
int main()
{
int N;
cin>>N;
for(int i=1;i<=N;i++)
{
cin>>a[i];
}
SelectSort(N);
for(int i=1;i<=N;i++)
{
cout<<a[i]<<" ";
}
return 0;
}
冒泡排序
冒泡排序,拿第一个元素与第二个元素比较,如果第一个比第二个大,则交换他们的位置。接着继续比较第二个与第三个元素,如果第二个比第三个大,则交换他们的位置….
#include<iostream>
#define M 10001
using namespace std;
int a[M];
void BubbleSort(int n)
{
int t;
for(int i=1;i<=n;i++)
{
for(int j=i+1;j<=n;j++)
{
if(a[j]<a[i])
{
t=a[j];
a[j]=a[i];
a[i]=t;
}
}
}
}
int main()
{
int N;
cin>>N;
for(int i=1;i<=N;i++)
{
cin>>a[i];
}
BubbleSort(N);
for(int i=1;i<=N;i++)
{
cout<<a[i]<<" ";
}
return 0;
}