gpt4 book ai didi

java - 为什么我的改进冒泡排序方法不起作用?

转载 作者:行者123 更新时间:2023-11-30 06:18:16 26 4
gpt4 key购买 nike

这是我在学校进行数组练习的 java 代码我想知道为什么即使这里的一切都有效,当我尝试使用 ImprovishedBubbleSort 方法时,我的程序却停止运行

 public static void ImprovedBubbleSort(int [] array){
boolean swap;
int temp;
int max;
do {
swap=false;
max=1;
for (int i=0;i<array.length-max;i++){
if (array[i]>array[i+1]){
temp=array[i];
array[i]=array[i+1];
array[i+1]=temp;
swap=true;
}
max++;
}
}while (swap=true);
System.out.println("The numbers you entered in order are: ");
for (int j=0;j<10;j++){
System.out.println(array[j]);
}
}
}

最佳答案

重要的是要认识到,如果您使用单个循环(如示例中的 if 语句),您可以找到位置 0 和 1 的实例,其中它已排序,但数组的其余部分可能未排序。这将导致 if 语句无法激活。

您可以通过执行以下操作来缓解此问题:

import java.util.Arrays;
public class MyClass {
public static void main(String args[]) {


int test[] = {7,1,9,1,5,6};
bubbleSort(test);
System.out.println(Arrays.toString(test));
}

static void bubbleSort(int[] arr) {
int n = arr.length;
int temp = 0;
for(int i=0; i < n; i++){
for(int j=1; j < (n-i); j++){
if(arr[j-1] > arr[j]){
//swap elements
temp = arr[j-1];
arr[j-1] = arr[j];
arr[j] = temp;
}
}
}
}
}

参见this示例。

关于java - 为什么我的改进冒泡排序方法不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48758101/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com