1. 程式人生 > >JAVA-初步認識-第五章-數組-常見操作-排序的性能問題

JAVA-初步認識-第五章-數組-常見操作-排序的性能問題

變量 數據交換 -1 常見操作 對比 一個 nbsp 數組 討論

一.

這裏對前面的選擇排序操作進行了深化,之前討論的選擇排序是將0角標上的數據和後面角標的數據一個個進行對比,不斷地調換數據的位置,直到0角標上的數據是整個數組中的最小值。由於調換的次數較多,現在引發一個疑問,能不能直接將0角標的數據和最小數據進行對換(前提是知道最小數據的角標是多少)。

技術分享

之前的例子裏,選擇排序中,進行了三次比較調換數據,才使得角標0上的數據是最小的。現在要換個思路來解決相同的問題。

具體的操作是:先定義兩個變量,為什麽要定義兩個變量?一個變量記錄用於比較的元素num,一個變量記錄角標值。

技術分享

思考:通過視頻講解,這裏是開辟了兩個新的變量作為記錄的地方,然後在這兩個變量上進行操作,比較的過程中,不對數組進行任何操作。經過所有的比較後,兩個變量記錄的是最小值和最小值的角標。最後,直接將數組中的,0角標的數據和4角標的數據進行數據交換。這個思路相較於之前的解題來說,進行了一個前期的鋪墊。其實,我覺著這個思路的過程中,操作也挺多的。增加了比較記錄的次數,減少了交換的次數。那兩個變量是存儲在棧內存中的。

技術分享

技術分享

技術分享

技術分享

JAVA-初步認識-第五章-數組-常見操作-排序的性能問題