今天分享一下最简单的排序算法:冒泡排序。
冒泡排序是由于它排序的方式而得名的,它是一种稳定的排序算法。
编程思路:依次比较相邻两个变量,将变量值大的放在变量值小的后面(升序),直到没有任何两个相邻变量可以交换。
冒泡排序(升序)代码如下:
#include<stdio.h>
#define ARRAY_LEN 10
void array_print(int *array,int array_len);
int swap(int *x,int *y);
void bubble_sort(int *array,int array_len);
int main(void)
{
int a[ARRAY_LEN] = {10,80,0,70,30,60,20,40,90,50};
array_print(a,ARRAY_LEN);
bubble_sort(a,ARRAY_LEN);
array_print(a,ARRAY_LEN);
return 0;
}
void array_print(int *array,int array_len)
{
int index;
for(index = 0;index < array_len;index++)
{
if(index == array_len - 1)
{
printf("%d\n",array[index]);
}
else
{
printf("%d,",array[index]);
}
}
}
int swap(int *x,int *y)
{
int temp;
temp = *x;
*x = *y;
*y = temp;
}
void bubble_sort(int *array,int array_len)
{
int i,j,temp;
for(i = 0;i < array_len- 1;i++)
{
for(j = 0;j < array_len - i -1;j++)
{
if(array[j] > array[j+1])
{
swap(&array[j],&array[j+1]);
}
}
}
}
小伙伴们可以试着写下降序的代码。