gpt4 book ai didi

java - 冒泡排序不起作用

转载 作者:行者123 更新时间:2023-12-01 13:50:00 24 4
gpt4 key购买 nike

package package13;

import java.util.Scanner;

public class Sorter {

public static void main (String[] args) {


int i,j;
String select;

int inputArray[]=new int[10];
System.out.println("Enter 10 numbers:");
Scanner scan = new Scanner (System.in);
for (i=0;i<inputArray.length;i++) {
inputArray[i]=scan.nextInt();
}
for (j=0;j<inputArray.length;j++) {
System.out.print(" "+inputArray[j]);
}
System.out.println("\nHow would you like to sort these numbers?");
System.out.println("Your choices are: Selection, Insertion, or Bubble");
Scanner scanner = new Scanner (System.in);

select = scanner.nextLine();
String choice = select.toString();

String answer=choice;

//going to use a switch for this

choices Choice = choices.valueOf(answer.toUpperCase());

switch(Choice) {
case SELECTION:
System.out.println("Selection sort:");
int min;

for (int k=0; k < inputArray.length; k++) {
min=k;
for (int l=k +1;l<inputArray.length;l++) {
if (inputArray[l] < inputArray[min]) {
min=l;
}
}
if (min != k) {
final int temp = inputArray[k];
inputArray[k] = inputArray[min];
inputArray[min] = temp;
}
System.out.println(inputArray[k]);

}
break;
case INSERTION:
System.out.println("Insertion sort");
int blue, temp;
for (int red=1;red<inputArray.length;red++) {
blue=red;
temp=inputArray[red];
while (blue!=0&&inputArray[blue-1]>temp) {
inputArray[blue]=inputArray[blue-1];
blue--;
}
inputArray[blue]=temp;
}
for (int green=0;green<inputArray.length;green++) {
System.out.println(inputArray[green]);
}
break;
case BUBBLE:
System.out.println("Bubble sort");
int cat, dog;
boolean fixed=false;

while (fixed==false) {
fixed=true;

for (dog=0;dog<inputArray.length;dog++) {
if (inputArray[dog] > inputArray[dog+1]) {
cat = inputArray[dog+1];
inputArray[dog+1]=inputArray[dog];
inputArray[dog]=cat;
fixed=false;
}
}

}

for (int mouse=0;mouse<inputArray.length-1;mouse++) {
System.out.println(inputArray[mouse]);
}
break;
}

}
public enum choices {
SELECTION,
INSERTION,
BUBBLE
}

}

它应该要求用户使用数组输入十个数字。然后程序询问用户使用哪种排序算法对这些数字进行排序。最后,程序打印按用户选择的算法排序的数组。我不明白为什么冒泡排序不起作用有什么帮助吗?

最佳答案

您需要将一些循环嵌套在一起。我想说你应该编写自己的代码。但谁真正关心冒泡排序。

<小时/>

冒泡排序说明

基本上,冒泡排序的工作原理是检查相邻值(彼此相邻的值)并根据第一个值是否更大来交换它们。它不断地迭代列表(数组),直到一切都井然有序。

<小时/>

简单嵌套循环

for(int i = 0; i < arrayInput.length; i++){
for(int j = 0; j < arrayInput.length-1; j++){
if(arrayInput[j] > arrayInput[j+1]){
//swap values
}
}
}

同时进行

boolean swapped = false;

do{
swapped = false
for(int j = 0; j < arrayInput.length-1; j++){
if(arrayInput[j] > arrayInput[j+1]){
//swap values
swapped = true;
}
}
}while(swapped);

递归(刚刚制作了这个:P)

Boolean swapped = true;
while(swapped){
swapped = bubblehelper(arrayInput);
}

Boolean bubblehelper(int[] arrayInput){
Boolean swapped = false;
for(int j = 0; j < arrayInput.length-1; j++){
if(arrayInput[j] > arrayInput[j+1]){
//swap values
swapped = true;
}
}
return swapped;
}

希望这有帮助。

关于java - 冒泡排序不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20038878/

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