冒泡法找出数组里最大值和最小值,请高手看一下对不对?

2020-01-16 18:31发布

只需要找出最大值和最小值就可以了,最后的结果是a[0]为最小,a[9]为最大,试了几次,没有问题,不知道这种方法行不行的通,看到网上的冒泡法都要循环更多次,给修改了一下。
void testS(void)  
{  
        unsigned char a[10]={240,208,241,98,100,21,187,237,228,21};
    unsigned char t=0,j=0;
        for(j=0;j<9;j++)          //每趟比较j+1次  
                if(a[j]>a[j+1])          //从左至右依次比较两个相邻的数,将小数放在前面,大数放在后面  
            {  
                t=a[j];  
                a[j]=a[j+1];  
                a[j+1]=t;  
            }
        for(j=8;j>0;j--)          //每趟比较j-1次  
                if(a[j]<a[j-1])          //从右至左依次比较两个相邻的数,将小数放在前面,大数放在后面  
            {  
                t=a[j];  
                a[j]=a[j-1];  
                a[j-1]=t;  
            }
        for(t=0;t<10;t++)
                {                                                    
                        DISP_BL(t,a[t]);  //送至数码管显示
                        j=20;
                        while(j)
                        {
                                Delay(200);        //延时
                                j--;       
                        }
                }
        j=20;
        while(j)
        {
                Delay(200);        //延时
                j--;       
        }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
40条回答
wxdn
1楼-- · 2020-01-17 15:00
gujiamao_love 发表于 2016-11-10 09:35
获取到最大值和最小值的id,剩下的不就是其他数的id

他的这个循环只是找出了最大的,再循环一次才能找出最小的是不是?
gujiamao_love
2楼-- · 2020-01-17 15:35
wxdn 发表于 2016-11-10 09:40
他的这个循环只是找出了最大的,再循环一次才能找出最小的是不是?

重新写个函数 获取最小值的索引的函数,就ok啦
JoshuaAstray
3楼-- · 2020-01-17 20:03
python ,list.sort()
laujc
4楼-- · 2020-01-17 23:48
只找最大和最小,只要一个循环就行了。
wxdn
5楼-- · 2020-01-18 03:36
 精彩回答 2  元偷偷看……
laujc
6楼-- · 2020-01-18 07:58
排序的话,才需要多次循环。所以楼主想多了,下面几楼是对的

一周热门 更多>