gpt4 book ai didi

java - 在选择排序项目中,10 个元素的数组仅接受 5 个整数

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

好吧,这是一个 Java 类,但我不是在找人写代码,只是帮我调试这个。我想输入 10 个整数,并在输入和显示时按升序对输入进行排序,数组中不存在任何零 (0)。

作业的示例:

输入 10 个整数 - 一次一个......

输入整数#1:21

已排序数字:21

输入整数#2:48

已排序数字:21 48

输入整数#3:37

已排序数字:21 37 48等等....

我尝试过选择排序、插入排序和冒泡排序,但数组无法容纳或显示超过 5 个数字。

帮助。

这是我的主要内容:

import java.util.*;

public class Main {

static Scanner input = new Scanner(System.in);

public static void main(String[] args) {
// TODO Auto-generated method stub

Scanner input = new Scanner (System.in);

int j = 1;
int[] list = new int[10];

System.out.println("Enter 10 integers - one at a time...");

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

System.out.print("Enter integer #" + j + ": ");
list[i] = input.nextInt();
j++;

//SortMethod.sort(list, list.length);
SelectionSort.sort(list);
//BubbleSort.sort(list);
System.out.print("Sorted numbers: ");

for(int p= 0; p<list.length; p++){
if (list[p] !=0)

System.out.print(list[p] + " ");
}
System.out.print("\n");
}
System.out.println("Done!");
}
}

这是我的选择排序:

public class SelectionSort {


public static void sort (int[] list){
for(int i=0; i<list.length; i++)
{
for(int j=i+1; j<list.length; j++)
{
if(list[i] > list[j] )
{
int temp = list[j];
list[j] = list[i];
list[i] = temp;
}
}
}
}
}

提前致谢!

最佳答案

为什么不使用 List 而不是 jdk 中的数组和现成的排序实现 -> Collections.sort()

无论如何,问题是您将新整数插入到已经排序的数组中,这会导致代码出现故障。因此,当您在索引 0、1、2、3、4 上插入新元素时,排序算法会将它们移动到位置 5、6、7、8、9。从此时起,您的输入开始用输入中的新值覆盖排序值 - (主循环 i>=5)。总而言之,它接受 10 个整数,但请覆盖其中 5 个。

这是你的作品的小修改版本,它可以按照你想要的方式工作。分析一下!

import java.util.*;

public class test {

static Scanner input = new Scanner(System.in);

public static void main(String[] args) {
// TODO Auto-generated method stub

Scanner input = new Scanner(System.in);

int j = 1;
int[] list = new int[11];

System.out.println("Enter 10 integers - one at a time...");

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

System.out.print("Enter integer #" + j + ": ");
list[0] = input.nextInt();
j++;

//SortMethod.sort(list, list.length);
SelectionSort.sort(list);
//BubbleSort.sort(list);
System.out.print("Sorted numbers: ");

for (int p = 1; p < list.length; p++) {
if (list[p] != 0)

System.out.print(list[p] + " ");
}
System.out.print("\n");
}
System.out.println("Done!");
}
}

class SelectionSort {

public static void sort(int[] list) {
for (int i = 0; i < list.length; i++) {
for (int j = i + 1; j < list.length; j++) {
if (list[i] > list[j]) {
int temp = list[j];
list[j] = list[i];
list[i] = temp;
i--;
break;
}
}
}
}
}

关于java - 在选择排序项目中,10 个元素的数组仅接受 5 个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19558027/

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