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;
}
问题描述:
我想问一下,这种排序方法,是什么排序来着,看的有点懵了
登陆购买课程后可参与讨论,去登陆吧
同学你好,同学提供的代码是选择排序的写法,但是j的初始化语句应当是“int j = i +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+" "); } } }
我这个也可以运行
就是不知道这个是什么排序
同学你好,同学提供的是选择排序的代码。有一个简单的区分方式:
冒泡排序在内层循环对比的是a[j]和a[j+1]之间的大小,而选择排序在内层循环对比的是a[j]和a[i]之间的大小,两者在对比时使用的下标是不一样的。
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
登录后可查看更多问答,登录/注册
综合就业常年第一,编程排行常年霸榜,北上广深月薪过万! 不需要基础,无需脱产即可学习,只要你有梦想,想高薪! 全新升级:技术栈升级(包含VUE3.0,ES6,Git)+项目升级(前后端联调与功能升级)
79 1
56 1
9 1
14 1
56 9
在线咨询
领取优惠
免费试听
领取大纲
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星