这是一道java题目,为什么输出是5 6 7 8 9.循环的执行过程是怎么样的?

 我来答
haodemumu168
推荐于2016-10-06 · TA获得超过299个赞
知道小有建树答主
回答量:479
采纳率:100%
帮助的人:278万
展开全部
int a[] = {5,9,6,8,7};
 int i,j;
 for(i = 0;i<a.length-1;i++){//1层循环取元素
 int k = i;
 for(j=i;j<a.length;j++){//二层循环,取剩余部分(除去前一个元素)
 if(a[j]<a[k]){//如果前一个元素<后面的元素
 k=j;//交换下标
 }
 }
 //冒泡排序 主题思想就是临时变量temp永远代表最小的值,然后将这个最小值赋给下标较小的
 int temp = a[i];
 a[i] = a[k];
 a[k]= temp;
 }
 for(i=0;i<a.length;i++){
 System.out.println(a[i] + " ");
 }
 System.out.println();
 }
白菜一颗
2015-01-20 · TA获得超过8916个赞
知道大有可为答主
回答量:3260
采纳率:69%
帮助的人:3666万
展开全部
冒泡法排序,外层就是循环a数组中元素,而内层循环每次循环会减少一个,因为内层循环循环完后会记录数组中最小的数的下标并赋给k,然后把数组中a[i]和a[k]进行交换,这样第一次外层循环结束第0个元素就是最小的,第二层循环结束第1个元素就是次小的直到全部循环结束
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友784eb94
2015-01-20 · TA获得超过377个赞
知道小有建树答主
回答量:205
采纳率:100%
帮助的人:164万
展开全部
第一个for循环已经将数组从小到大进行了排序,排序的思路就是循环拿第i个和i以后的元素去比较,如果小就说明后面的比前面的小,然后就把他们换一下位置
更多追问追答
追问
不懂啊。你看后面输出,还有第二个for循环。。。
追答
后面那个for循环就是把数组打印出来啊,这个你不懂?就是一个个输出而已,没什么东西……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
紫血M恶魔
2015-01-20 · TA获得超过104个赞
知道小有建树答主
回答量:118
采纳率:0%
帮助的人:112万
展开全部
选择排序:
先找出从a[0]开始5个数中最小的一个,记录下标k,将最小的一个和a[0]元素交换,
再找出从a[1]开始剩余4个数中最小的一个,记录下标k,将最小的一个和a[1]交换,
再找出从a[2]开始剩余3个数中最小的一个,记录下标k,将最小的一个和a[2]交换,
再找出从a[3]开始剩余2个数中最小的一个,记录下标k,将最小的一个和a[3]交换,
还剩一个数他肯定就最大了,不需要交换。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式