1. 程式人生 > >隨機一個數組並排序

隨機一個數組並排序

今天分享一下陣列的排序:

首先我們隨便寫一個數組,

第一遍執行時我們發現這個陣列發生了越界所以我們再改一次程式碼

我們這次對我們的迴圈條件進行了更改,也就是把這個陣列的總長度進行-1,這樣我們的程式碼就成功執行,但是我們又發現一個問題:

int[] arr = new int[]{12,5,7,6,8,23,5,3,9};
[5, 7, 6, 8, 12, 5, 3, 9, 23]

我們的輸出結果並沒有達到從小到大的排序。

其實這裡可以從我們的if判斷中發現我們只是將前一個數字和後一個數字進行比較,

[5, 12, 7, 6, 8, 23, 5, 3, 9]
[5, 7, 12, 6, 8, 23, 5, 3, 9]
[5, 7, 6, 12, 8, 23, 5, 3, 9]
[5, 7, 6, 8, 12, 23, 5, 3, 9]
[5, 7, 6, 8, 12, 5, 23, 3, 9]
[5, 7, 6, 8, 12, 5, 3, 23, 9]
[5, 7, 6, 8, 12, 5, 3, 9, 23]
[5, 7, 6, 8, 12, 5, 3, 9, 23]

我們發現當迴圈執行到 12 和23比較時,這裡並不滿足我們if判斷的條件:所以我們對程式碼再次更改

這裡我們在外層添加了一層for迴圈

然後我們對最內層的的for迴圈進行了 -x ,其實這裡-x的主要目的就是因為當最內層的 for迴圈結束一次以後

無論如何都會排出來一個最大的數字,也就是說我們下次在進行迴圈的時候就可以少迴圈一次用來最後面的排序。

這樣我們的程式碼就寫完了基本已經實現了我們隨機陣列並排序的功能。