簡體   English   中英

使用 RNG 進行 Arraylist 冒泡排序

[英]Arraylist bubble sort with RNG

導入 java.util.ArrayList;

公共類主{

public static void main(String[] args) {

    ArrayList<Integer> list = new ArrayList<Integer>();

    System.out.println("┌──────────────────────────────────────────────────────────────┐");
    System.out.println("|Welcome this is Bubble Sort that will random generate number ");
    System.out.println("└──────────────────────────────────────────────────────────────┘");
    System.out.println("┌─────────────────────────────────────────┐");
    for (int i = 1; i <= 5; i++) {
        System.out.println("|Number " + i + " random generated number");
        int random = (int) (Math.random() * 100 + 1);// to generate tha random number
        array[i] = random;// To have random number in array
        System.out.println("| "+random);//Display the result
        list.add(random);//To store the 5 randomly  generated numbers from 1 – 100 in arraylist

    }
    System.out.println("└─────────────────────────────────────────┘");
   
    System.out.println("┌──────────────────────────────────────────────────────────────┐");
    System.out.println("| before bubble sort");
        System.out.print(list);


    System.out.println("\n└──────────────────────────────────────────────────────────────┘");

    System.out.println();

    bubbleSort(list);
    System.out.println("┌─────────────────────────────────────────┐");
    System.out.println("Arraylist after bubble sort: ");
        System.out.print(list);
    System.out.println("\n└─────────────────────────────────────────┘");

}
static void bubbleSort(ArrayList<Integer> list) {
    int temp=0;
    boolean needNextPass = true;
    for (int k = 1; k < list.size() && needNextPass; k++) {
        //array may be sorted and next pass not needed
        needNextPass = false;
        for (int i = 0; i < list.size()-k; i++) {
            if (list.get(i).compareTo(list.get(i + 1))>0)
                 temp =  list.get(i);
                list.set(i, list.get(i + 1));
                list.set(i + 1, temp);

                needNextPass = true; // next pass still needed
            }
        }
    }
}

這是輸出 1]: https : //i.stack.imgur.com/qHyk1.jpg

我不知道為什么 ArrayList 不會排序,有些數字只是重復排序不正確,所以如果可能的話,任何人都可以幫助我

我試圖設置 int temp; 但它不會工作它的建議想要添加 temp = 0; 所以我試着做 temp = 1; i=1; 它不會工作

您只需要更改 if 條件即可按升序排序。 if (list.get(i).compareTo(list.get(i + 1)) > 0)改為 if (list.get(i).compareTo(list.get(i + 1)) < 0)

java中的比較

if input1 > input2, it returns positive number  
if input1 < input2, it returns negative number  
if input1 == input2, it returns 0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM