基本思想:對比相鄰的元素值,如果滿足條件就交換元素值,把較小的元素移動陣列前面,較大的元素移動到陣列後面
演算法:冒泡演算法由雙層迴圈實現,其中外層迴圈控制排序輪次,一般為排序的陣列長度減一。而內層迴圈主要用於對比陣列中每個臨近元素的大小,以確定是否交換位置,對比和交換的次數隨排序輪數而減少。
演算法實現:
1public
class
bubble ;
4 bubble sorter = new
bubble();
5sorter.sort(array);6}
7//氣泡排序
8public
void sort(int
array)16}
17}18showarray(array);19}
20//
顯示陣列元素
21public
void showarray(int
array)25}
26 }
速度比氣泡排序快一些
基本思想:將指定排序位置與其他陣列元素分別對比,如果滿足條件就交換元素值。
舉例:初始值:63 4 24 1 3 15
第一輪:15 4 24 1 3 63
第二輪:15 4 3 1 24 63
第三輪:1 4 3 15 24 63
第四輪:1 3 4 15 24 63
第五輪:1 3 4 15 24 63
解釋:首先找出6個數中最大的與最後乙個數交換位置,然後在前5個數中找出最大的數與倒數第二個交換位置,這樣length-1次
演算法實現:
1public
class
select ;
4 select sorter =new
select();
5sorter.sort(array);6}
7//直接選擇排序
8public
void sort(int
array)16}
17int temp=array[array.length-i];
18 array[array.length-i]=array[index];
19 array[index]=temp;20}
21showarray(array);22}
23//
顯示陣列
24private
void showarray(int
array) 28}
29 }
陣列的排序演算法
include int main void puts 您輸入的是個數為 for int j 0 j 10 j int item,ipos 從小到大排序演算法 for int m 0 m 9 m a ipos a m 與第m個元素交換數值 a m item puts n從小到大排序後,輸出為 for ...
陣列常用排序演算法
今天覆習到陣列部分,發現陣列部分中比較重要的可能就是排序這個問題了。其他像遍歷 填充替換陣列元素 複製陣列 查詢陣列等都相對簡單,就把排序部分稍作整理。沒什麼高深知識,隨便看看就好。首先貼出氣泡排序和直接選擇排序的 兩者相近且比較簡單,本來打算分著寫更明顯,不過看著實在太短了,就在乙個類中寫出了,類...
Java 陣列排序演算法
目錄 一 氣泡排序 二 直接選擇排序 三 反轉排序 以相反順序重新排列陣列 程式常用的排序方法有氣泡排序 選擇排序和快速排序等 除sort 方法外 public class bubblesort bubblesort sorter new bubblesort sorter.sort arr pub...