java冒泡排序swap不能实现功能
publicclassTs{publicvoidbubbleSort(){intin,out;inta[]={5,6,7,1};for(out=a.length-1;ou...
public class Ts {
public void bubbleSort()
{
int in,out;
int a[]={5,6,7,1};
for(out=a.length-1;out>0;out--)
for(in=0;in<out;in++)
{
if(a[in]>a[in+1])
swap(in,in+1);
}
System.out.println(a[0]+","+a[1]+","+a[2]+","+a[3]);
}
public static void swap(int x,int y) {
int temp =x;
x=y ;
y=temp;
}
public static void main(String[] args) {
Ts b = new Ts();
b.bubbleSort();
}
} 展开
public void bubbleSort()
{
int in,out;
int a[]={5,6,7,1};
for(out=a.length-1;out>0;out--)
for(in=0;in<out;in++)
{
if(a[in]>a[in+1])
swap(in,in+1);
}
System.out.println(a[0]+","+a[1]+","+a[2]+","+a[3]);
}
public static void swap(int x,int y) {
int temp =x;
x=y ;
y=temp;
}
public static void main(String[] args) {
Ts b = new Ts();
b.bubbleSort();
}
} 展开
1个回答
展开全部
你那是值传递,是值的副本,不会改变的。
int data[]={5,6,7,1};
for (int i = 0; i < data.length - 1; i++) {
boolean flag = false;
for (int j = 0; j < data.length - 1 - i; j++) {
if (data[j] > data[j + 1]) {
swap(data, j, j+1);
}
}
}
void swap(int[] data, int i, int j) {
int temp = data[i];
data[i] = data[j];
data[j] = temp;
}
int data[]={5,6,7,1};
for (int i = 0; i < data.length - 1; i++) {
boolean flag = false;
for (int j = 0; j < data.length - 1 - i; j++) {
if (data[j] > data[j + 1]) {
swap(data, j, j+1);
}
}
}
void swap(int[] data, int i, int j) {
int temp = data[i];
data[i] = data[j];
data[j] = temp;
}
追问
要在swap里面加个数组来改变原来的数组值么
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询