问题:
给一个数组输入数值,并且升序排序;
思路:
- 排序,可以用冒泡排序法;
- 冒泡排序:即从前往后,进行两两比较交换,如第一个数,依次与后面的对边交换,最后给想要的值,冒泡到最后,这为一趟冒泡排序,第二趟排序也是从开头排,排到上一次最后的前面。
代码如下:
#include <stdio.h>
//冒泡排序,升序排列一组数字;
void buble(int a[],int size)
{
int i;
for(i=0;i<size-1;i++) //进行的总排序数
{
int j;
for(j=0;j<size-1-i;j++) //每趟排序中,给前面的数字排到最后,总排序数每次少1,所以为size-1=i
{
int temp;
if(a[j]>a[j+1]) //每一趟排序时进行的交换操作
{
temp =a[j];
a[j] =a[j+1];
a[j+1] = temp;
}
}
}
}
int main()
{
int a[]={6,5,4,3,2,1,0};
int size =sizeof(a)/sizeof(a[0]);
buble(a,size);
int i;
for(i=0;i<size;i++)
{
printf("a[%d]=%d\n",i,a[i]);
}
return 0;
}