目录
1.简单选择排序
1.1从前往后选择排序
#include<iostream>
using namespace std;
int main()
{
int n, i, j;
cin >> n;
int* a = new int[n];//动态分配一维数组
for (i = 0; i < n; i++)
{
cin >> a[i];
}
for (i = 0; i < n-1; i++)//循环趟数,最后一个数经过前面数的排序已成为最大值,无需再排
{
for (j = i+1; j < n; j++)
{
if (a[j] < a[i])
{
int min = a[j];//换位置,将较小者放前面
a[j] = a[i];
a[i] = min;
}
}
}
for (i = 0; i < n; i++)
{
if (i)
cout << " " << a[i];
else
cout << a[i];
}
}
1.2从后往前选择排序(图略)
for (i = n - 1; i > 0; i--)
{
for (j = i - 1; j >= 0; j--)
{
if (a[j] > a[i])
{
int max = a[j];
a[j] = a[i];
a[i] = max;
}
}
}