//冒泡排序法
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int i, j, m, a[n];
for(i = 0; i < n; i++)
scanf("%d",&a[i]);
for(i=0; i<n-1; i++)
{
for(j=0;j<n-i-1;j++)
{
if(a[j] > a[j+1])
{
m = a[j];
a[j] = a[j+1];
a[j+1] = m;
}
}
}
for(i = 0; i < n; i++)
printf("%d ",a[i]);
}
//选择排序法
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int i, j, m, a[n];
for(i = 0; i < n; i++)
scanf("%d",&a[i]);
for(i = 0; i < n; i++)
{
for(j = i+1; j < n; j++)
{
if(a[j] < a[i])
{
m = a[j];
a[j] = a[i];
a[i] = m;
}
}
}
for(i = 0; i < n; i++)
printf("%d ",a[i]);
}
冒泡排序法是用一个当前的数和下一个数作比较,循环往前推进。
如:4 5 1 3 -> 4 1 5 3 -> 4 1 3 5 -> 1 4 3 5 -> 1 3 4 5
选择排序法是用一个当前的数和后边所有的数作比较,然后循环。
如:4 5 1 3 -> 1 5 4 3 -> 1 4 5 3 -> 1 3 5 4 -> 1 3 4 5