为了账号安全,请及时绑定邮箱和手机立即绑定

冒泡法输出结果没有变化

冒泡法输出结果没有变化

package com.imooc;public class test111 { public static void main(String[] args) { int[] arr = { 24, 69, 80, 57, 13 }; for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - 1 - i; j++) { swap(arr[j], arr[j + 1]); } } } } public static void swap(int a, int b) { if (a > b) { int temp; temp = a; a = b; b = temp; } }}
查看完整描述

5 回答

?
慕粉18356133882

TA贡献4条经验 获得超0个赞

int[]arr={24,9,0,1,5,35,92,6,9,3};

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

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

if(arr[j]>arr[j+1]){

int temp=arr[j];

arr[j]=arr[j+1];

arr[j+1]=temp;

}

}

}

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

System.out.println(arr+"\t");

}


查看完整回答
反对 回复 2016-07-23
?
低调一点点plus

TA贡献2条经验 获得超0个赞

写了数据结构中的冒泡排序的算法,应该是C语言版的。
int  []array=new int;

int temp=0;

for(int i=0;i<array.length-1;i++)

{

for(int j=i+1;j<array.length;j++)

{

if(array[j]<array[i])

{

temp=array[i];

array[i]=array[j];

array[j]=temp;

}

}

}

查看完整回答
反对 回复 2016-07-22
?
1994我

TA贡献3条经验 获得超1个赞

public static void swap(int a, int b) {

if (a > b) {

int temp;

temp = a;

a = b;

b = temp;

}

JAVA中虽然没有指针,但是还是有形参和实参的区别,当你调用这个方法的时候,相当于a=arr[j],b=arr[j+1],实际上你这段代码交换的是a和b,而你的arr[j]和arr[j+1]是没有交换的,你最好

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

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

swap(arr[j], arr[j + 1]);//改成if (arr[j] > arr[j+1]) {

                                                 int temp;

                                                  temp = arr[j];

                                                    arr[j] = arr[j+1];

                                                  arr[j+1] = temp;

}

}

}


查看完整回答
反对 回复 2016-07-21
?
Caballarii

TA贡献1123条经验 获得超629个赞

基础数据类型作为参数都是值传递,不会改变传入的参数本身的值

你这里把swap方法写成

public static void swap(int[] arr,int i,int j)

这样的形式,传入数组本身和两个下标,这样交换数据才会影响main方法里的数组变量

查看完整回答
反对 回复 2016-07-21
  • 5 回答
  • 0 关注
  • 2739 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信