排序演算法(一)
注:以下排序演算法都按從小到大的順序排序
1.氣泡排序
(1)演算法思想:從陣列中的第一個元素開始,依次比較相鄰兩個元素之間的大小,將較小的元素排在前面,這樣每輪會在陣列末尾選出一個最大的數,一共需要比較N-1輪(N為陣列長度)。
(2)程式碼實現:
import java.util.Arrays; public class Demo02 { public int[] sortArray(int[] A){ int temp = 0; for(int i=0; i<A.length; i++){ for(int j=0; j<A.length-i-1; j++){ if(A[j]>A[j+1]){ temp = A[j]; A[j] = A[j+1]; A[j+1] = temp; } } } // System.out.println(Arrays.toString(A)); return A; } public static void main(String[] args){ int[] A = {1,16,4,9,20,45}; Demo02 demo02 = new Demo02(); demo02.sortArray(A); } }
(3)時間複雜度:O(n^2)
(4)動圖演示:
2.選擇排序
(1)演算法思想:將待排序陣列分為兩部分,一部分為已排序,另一部分為未排序,第一輪在未排序的陣列中找出一個最小元素,放入到陣列的起始端,作為已排序陣列,之後每一輪都將未排序陣列中的最小值依次放到已排序陣列的末端。
(2)程式碼實現:
public int[] sortArray(int[] A) { int temp = 0; for (int j = 0; j < A.length; j++) { int minNum = j; for (int i = j + 1; i < A.length-1; i++) { if (A[minNum] > A[i]) minNum = i; } temp = A[minNum]; A[minNum] = A[j]; A[j] = temp; } return A; } public static void main(String[] args){ int[] A = {1,16,4,9,20,45}; Demo02 demo02 = new Demo02(); demo02.sortArray(A); System.out.println(Arrays.toString(A)); } }
(3)時間複雜度:O(n^2)
(4) 動圖演示:
相關文章
- 【演算法-排序之一】氣泡排序演算法排序
- 【JAVA演算法】排序演算法 -- 快速排序Java演算法排序
- 排序演算法__桶排序排序演算法
- 排序演算法__快速排序排序演算法
- 排序演算法__希爾排序排序演算法
- 排序演算法__堆排序排序演算法
- 排序演算法:快速排序排序演算法
- 【排序演算法】- 希爾排序排序演算法
- 排序演算法-堆排序排序演算法
- 排序演算法-快速排序排序演算法
- 排序演算法 - 堆排序排序演算法
- 排序演算法——快速排序排序演算法
- 排序演算法 - 快速排序排序演算法
- 【一起學習排序演算法】3 選擇排序排序演算法
- 【一起學習排序演算法】2 氣泡排序排序演算法
- 【一起學習排序演算法】4 插入排序排序演算法
- #排序演算法#【6】排序演算法總結排序演算法
- 演算法之常見排序演算法-氣泡排序、歸併排序、快速排序演算法排序
- 齊姐漫畫:排序演算法(一)排序演算法
- 常見的排序演算法分析(一)排序演算法
- Python 一網打盡<排序演算法>之堆排序演算法中的樹Python排序演算法
- 一天一演算法 - 基數排序演算法排序
- 排序演算法之 '快速排序'排序演算法
- 排序演算法–氣泡排序排序演算法
- 排序演算法__氣泡排序排序演算法
- 排序演算法__選擇排序排序演算法
- 排序演算法__歸併排序排序演算法
- 排序演算法__計數排序排序演算法
- 排序演算法__基數排序排序演算法
- 排序演算法:選擇排序排序演算法
- 排序演算法之——桶排序排序演算法
- 排序演算法--氣泡排序排序演算法
- 排序演算法:歸併排序排序演算法
- 歸併排序--排序演算法排序演算法
- 排序演算法之希爾排序排序演算法
- 排序演算法 - 歸併排序排序演算法
- 排序演算法-氣泡排序排序演算法
- #排序演算法#【3】堆排序排序演算法