這裏是我的教練問題:我的java程序不工作,我跑了代碼和排序是不正確的
- 加載數據的下列物品進入從鍵盤交互的數組。
- 按照輸入順序打印數據。
- 使用選擇排序以升序對數據進行排序。
- 按排序順序打印數據。
- 使用冒泡排序以降序對數據進行排序。
- 按排序順序打印數據。
這些數據項,您將使用: 本田,雪佛蘭,福特,勞斯萊斯,奔馳
import java.util.Scanner;
public class Example532 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String[] list = new String[5];
System.out.println("Enter data: ");
for (int i=0; i<5; i++) {
list[i] = scan.nextLine();
}
System.out.println("Current data:");
for (int i=0; i<5; i++) {
System.out.println(list[i]);
}
// call selection sort
doSelectionSort(list);
// print out current array
System.out.println("Sorted data:");
for (int i=0; i<5; i++) {
System.out.println(list[i]);
}
// call bubble sort
doBubbleSort(list);
System.out.println("Bubble Sorted data:");
for (int i = 0; i < 5; i++) {
System.out.println(list[i]);
}
}
public static String[] doSelectionSort(String[] arr){
for (int i = 0; i < arr.length - 1; i++)
{
int index = i;
for (int j = i + 1; j < arr.length; j++)
if (arr[j].compareTo(arr[index]) < 0)
index = j;
String smaller = arr[index];
arr[index] = arr[i];
arr[i] = smaller;
}
return arr;
}
public static void doBubbleSort(String[] arr) {
boolean swapped = true;
int j = 0;
String tmp;
while (swapped) {
swapped = false;
j++;
for (int i = 0; i < arr.length - j; i++) {
if (arr[i].compareTo(arr[i + 1]) < 0) {
tmp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = tmp;
swapped = true;
}
}
}
}
}
首先,什麼是你想通過吃'for'循環的括號來實現?這不是很好的編碼習慣。 – Ravi
當我運行這個,它的工作。你碰到什麼(確切)問題? – Stefan
它沒有按正確順序排序 –