c语言作业,给定一个10元素数组,按元素从小到大进行排序。从小到大a[0]~a[9],老师规定说。

2024-12-29 00:32:53
推荐回答(3个)
回答1:

冒泡法排序是“交换相邻的两个数”,虽然它也用temp做交换的临时变量,但它不用找最大值。
选择排序是“与最大值或最小值交换”,用temp储存最大值的位置而不是最大值。
貌似排序时不用找最大值,你或者你老师是不是搞混了?
冒泡法排序:
for(i=1;i<10;i++)//i是排序的趟数,共需要9趟
for(j=9;j>=i;j--)//j是比较得到次数,第i趟共需要比较10-i次
if(a[j-1]>a[j])
{
temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}

回答2:

冒泡和沉底是两种不同的方法, 从上往下检索,大数往后移是沉底, 从下往上检索,小数往前是冒泡
你代码中只有一个for循环, 只能冒一个泡或沉一个底

回答3:

亲,你要问什么。你的程序不对