陣列排序常見的幾種演算法

2021-09-03 10:56:23 字數 1807 閱讀 1224

氣泡排序的基本思想就是對比相鄰的元素值,如果滿足條件就交換元素值,把小的放前面,把大的放後面。

其演算法由兩層迴圈實現,外層迴圈控制排序次數,一般為排序的陣列的長度減1,內層迴圈主要用於比較相鄰元素的大小,以判斷是否交換位置。內層的對比次數隨著外層排序的次數的增加而減少。**如下

public class test4 ;

//建立氣泡排序類的物件

test4 sorter = new test4();

//呼叫排序方法將陣列排序

sorter.sort(array);

} /**

* 氣泡排序

* @param array 要排序的陣列

*/public void sort(int array)

}} //輸出氣泡排序後的陣列元素

showarray(array);

} /**

* 顯示陣列中的所有元素

* @param array 要顯示的陣列

*/public void showarray(int array)

system.out.println();

}}

直接選擇排序的基本思想是將排序位置與其他陣列元素一一對比,如果滿足條件就交換元素值,這樣每次排序都是取得的是剩餘陣列中最大的元素,再按照順序擺放。直接選擇排序與氣泡排序相比交換的次數要少很多,所以速度會快些。**如下:

public class selectsort ;

//建立直接排序類的物件

selectsort sorter = new selectsort();

//呼叫排序物件的方法將陣列排序

sorter.sort(array);

} /**

* 直接選擇排序

* @param array 要排序的陣列

*/public void sort(int array)

}//交換在位置array.length-i和index(最大值)上的兩個數

int temp = array[array.length-i];

array[array.length-i] = array[index];

array[index] = temp;

} showarray(array);

} public void showarray(int array)

system.out.println();

}}

反轉排序就是以相反的順序把原有的陣列的內容重新排序。反轉排序的思想就是把第乙個元素與最後乙個元素交換,第二個與倒數第二個交換,依此類推。實際迴圈次數為陣列長度的一半。

public class reversesort ;

//建立反轉排序類的物件

reversesort sorter = new reversesort();

//呼叫排序物件的方法將陣列反轉

sorter.sort(array);

} /**

* 反轉排序

* @param array 要排序的陣列

*/public void sort(int array)

system.out.println("陣列反轉後內容:");

showarray(array);

} /**

* 顯示陣列中的所有元素

* @param array 要顯示的陣列

*/public void showarray(int array)

system.out.println();

}}

常見的幾種陣列排序的演算法

int arrs 思路 i i每次迴圈,都會確定陣列中最後一位元素是陣列中最小的元素。j 每次迴圈,陣列都會從下標為j的元素與下標為j 1的元素進行比較,如果小於,則調換兩者的位置,依次向下進行判斷,直到確定陣列最後一位元素為最小的元素。for int i 0 i arrs.length 1 i s...

幾種常見排序演算法

幾種常見排序演算法 1氣泡排序 bubble sort 氣泡排序思路 將序列當中的左右元素,依次比較,保證右邊的元素始終大於左邊的元素 第一輪結束後,序列最後乙個元素一定是當前序列的最大值 對序列當中剩下的n 1個元素再次執行步驟1。3.對於長度為n的序列,一共需要執行n 1輪比較 實現 for i...

幾種常見排序演算法

1氣泡排序 bubble sort 氣泡排序思路 1.將序列當中的左右元素,依次比較,保證右邊的元素始終大於左邊的元素 第一輪結束後,序列最後乙個元素一定是當前序列的最大值 2.對序列當中剩下的n 1個元素再次執行步驟1。3.對於長度為n的序列,一共需要執行n 1輪比較 實現 for i 0 i n...