大神帮助下

不过如此。 2019-09-29 07:36:53
输入10数,按从小到大(或者从大到小),要用到2个循环,内层循环全部执行完成,只执行一次 int temp =a[j],a[j]=a[i],a[i] = temp 我们平时的程序是内层循环每一次都要执行一次调换数,现在要求你10个数,只允许执行10次int temp =a[j],a[j]=a[i],a[i] = temp,就可以完成排序
...全文
67 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jsddj 2019-10-03
  • 打赏
  • 举报
回复
1楼正解,9次交换即可。
hurtCat 2019-10-03
  • 打赏
  • 举报
回复
其实只要对选择排序稍微修改一下就可以了,其实交换次数应该是9次

public static void main(String[] args) {
    int[] nums = {9, 0, 3, 2, 4, 1, 5, 8, 7, 6};

    for (int i = 0; i < nums.length -1; i++) {
//用maxIndex 保存最大元素的索引
        int maxIndex = i;
        for (int j = i +1; j < nums.length; j++) {
            if(nums[j] > nums[maxIndex])
                maxIndex = j;
        }
//外循环交换
        int temp = nums[i];
        nums[i] = nums[maxIndex];
        nums[maxIndex] = temp;
    }
}

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧