排序

排序

for(int i=0;i<arr.length;i++) {

for(int j=i;j<arr.length;j++) {

if(arr[i]>=arr[j]) {

t=arr[i];

arr[i]=arr[j];

arr[j]=t;

}

}

}

问题描述:

我想问一下,这种排序方法,是什么排序来着,看的有点懵了

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,同学提供的代码是选择排序的写法,但是j的初始化语句应当是“int j = i +1”。

祝学习愉快~

  • 有点瑕疵 提问者 #1
    package com.imooc.array;
    
    public class ArrayDemo3 {
    	public static void main(String[] args) {
    		//冒泡排序
    		int[] arr= {1,5,3,6,9,4,6,1,2};
    		
    		System.out.print("排序前的顺序:");
    		for(int n:arr) {
    			System.out.print(n+" ");
    		}
    		int t=0;
    		for(int i=0;i<arr.length;i++) {
    			for(int j=i;j<arr.length;j++) {
    				if(arr[i]>=arr[j]) {
    					t=arr[i];
    					arr[i]=arr[j];
    					arr[j]=t;
    				}
    			}
    		}
    		//冒泡排序
    //		for(int i=0;i<arr.length-i;i++) {
    //			for(int j=0;j<arr.length-i-1;j++) {
    //				if(arr[j]>=arr[j+1]) {
    //					t=arr[j];
    //					arr[j]=arr[j+1];
    //					arr[j+1]=t;
    //				}
    //			}
    //		}
    		System.out.println();
    		System.out.print("排序后的顺序:");
    		for(int n:arr) {
    			System.out.print(n+" ");
    		}
    	}
    }

    我这个也可以运行

    就是不知道这个是什么排序

    2023-04-01 13:59:21
  • 好帮手慕小蓝 回复 提问者 有点瑕疵 #2

    同学你好,同学提供的是选择排序的代码。有一个简单的区分方式:

    冒泡排序在内层循环对比的是a[j]和a[j+1]之间的大小,而选择排序在内层循环对比的是a[j]和a[i]之间的大小,两者在对比时使用的下标是不一样的。

    祝学习愉快~

    2023-04-01 14:49:20
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师