1,实现原理
多轮比较,每轮比较中,将相邻的两两比较,大的往后排。
比如下面比较5个数的大小: 12,5,23,6,25,下面的表格列出了比较的过程
比较过程图例可以得出结论:
a,5个数,共经过了4轮比较;
b,第一轮比较中,经过了4轮比较;得出最大值23;则下一轮参与比较的数有4个
第二轮比较中,经过了3轮比较;得出次大值12;则下一轮参与比较的数有3个
第三轮比较中,经过了2轮比较;得出第三大的值6,则下一轮参与比较的数有2个
第四轮比较中,经过了1轮比较;得出第四大的值5,比较结束
2,根据以上的比较过程进行代码编写
编写思路:
结合1的分析过程,可以用嵌套循环实现;
外层循环就是上面比较的轮数,5个数一共比较了4轮,定义轮数为变量i,初始值为0,最大值为3(即数组的长度-1)
内层循环就是每一轮要比较的次数,定义为变量j,结合上面的表格发现i+j=4=数组长度-1;则j=数组长度-1-i;
以下是代码实现过程:
网友评论