1、冒泡排序,是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
#include <stdio.h>
int main()
{
int a[10] = {10,9,8,7,6,5,4,3,2,1};
int len = sizeof(a) / sizeof(int); //10
int i,j;
for(i = 0;i < len - 1;i++)
{
for(j = 0;j < len - 1 - i;j++)
{
if(a[j] > a[j+1])
{
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
for(j = 0;j < 10;j++)
{
printf("%d ",a[j]);
}
printf("\n");
}
return 0;
}
程序运行结果:
2、选择排序是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
#include <stdio.h>
int main()
{
int a[10] = {10,9,8,7,6,5,4,3,2,1};
int len = sizeof(a) / sizeof(int);
int i,j,min;
for(i = 0;i < len - 1;i++)
{
min = i;
for(j = i + 1;j < len;j++)
{
if(a[j] < a[min])
{
min = j;
}
}
if(min != i)
{
int temp = a[i];
a[i] = a[min];
a[min] = temp;
}
for(j = 0;j < 10;j++)
{
printf("%d ",a[j]);
}
printf("\n");
}
return 0;
}
程序运行结果: