今天看到一道题,让给一组数组从小到大排列, 也没说几个数。 那程序要怎么编写呢。
冒泡排序
void bubble_sort(int a[], int n) //a[]为数组,n为数组中元素个数,也可以直接获取数组长度n=sizeof(a)
{int i, j, temp;
for (j = 0; j < n - 1; j++)
for (i = 0; i < n - 1 - j; i++)
if(a[i] > a[i + 1])
{temp=a[i]; a[i]=a[i+1]; a[i+1]=temp;}
}
你可以用冒泡法,选择法,或者快速排序、归并法。其中选择法效率高一点,但是不够稳定。
可参考 http://blog.chinaunix.net/uid-25715095-id-272272.html
不知道数据是如何输入的,如果是一个数一个数的输入,但是不确定输入几个数的话,关键问题在于个数不确定,用一个变量来记录数组的长度,每当输入一个数字则该变量增加1,数字输入完成后这个变量的值就是数组长度,这时问题就转化成了固定长度的数组进行排序,于是问题就可以解决了
题目肯定为了是考察你的思想
运用冒泡、快速等 for(int i = 0 ; i <口 ; i++)
口用sizeof() 来表示数组的长度 即可