/**
* 氣泡排序
* * 原理 是臨近的數字兩兩進行比較,按照從小到大或者從大到小的順序進行交換,
* * 這樣一趟過去後,最大或最小的數字被交換到了最後一位,
* * 然後再從頭開始進行兩兩比較交換,直到倒數第二位時結束
* * @author daopinz
* */
public class bubblesort ;
system.out.println("排序前的陣列為:");
for (int num : arr)
for (int i = 0; i < arr.length - 1; i++)
}} system.out.println();
system.out.println("排序後的陣列為:");
for (int num : arr) }}
輸出:排序前的陣列為:
6 3 8 2 9 1 4 5
排序後的陣列為:
1 2 3 4 5 6 8 9
/** * 選擇排序
* * 原理:每一趟從待排序的記錄中選出最小的元素,順序放在已排好序的序列最後,直到全部記錄排序完畢
* @author daopinz
* */
public class selectionsort ;
system.out.println("交換之前:");
for(int num : arr)
//選擇排序的優化
for(int i=0;iarr[k])
}//在內層迴圈結束,也就是找到本輪迴圈的最小數以後,在進行交換
if(i!=k)
} system.out.println();
system.out.println("交換後:");
for(int num : arr) }}
輸出:交換之前:
6 3 8 2 9 1 4 5
交換後:
9 8 6 5 4 3 2 1
/** * 插入排序
* * 原理 是將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的、個數加一的有序資料
* @author daopinz
* */
public class sortarrs ;
system.out.println("排序前:");
for(int s:x)
insert_sort(x);
} public static void insert_sort(int unsorted)
unsorted[j] = temp;
}} system.out.println();
system.out.println("排序後:");
for (int x:unsorted) }}
輸出:排序前:
6 3 8 2 9 1 4 5
排序後:
1 2 3 4 5 6 8 9
總結:在大多情況下,假設當資料量比較小或者基本上有序時,插入排序演算法是三種簡單排序演算法中最好的選擇。對於更大資料量的排序來說,快速排序通常是最快的方法。
Java排序演算法之氣泡排序 插入排序 選擇排序
一 前言 排序是日常中最常見的一種演算法,常見的演算法有 氣泡排序 插入排序 選擇排序 歸併排序 快速排序 計數排序 快速排序 基數排序 桶排序。那麼該怎樣分析和學習排序演算法呢?二 演算法的分析課 在上述的八種排序方法中,根據時間複雜度和是否基於比較可以為三種 排序演算法 時間複雜度 是否基於比較...
演算法的效率(氣泡排序 選擇排序 快排)
演算法的效率可以用 時間複雜度o n 來度量。時間複雜度反應了程式執行時間隨輸入規模增長而增長的量級,很大程度上能反應演算法的優略程度。我們最開始認識的排序方法有氣泡排序和選擇排序但是這個演算法的效率怎麼樣呢,讓我們來測試一下。首先,我們隨機生成乙個長度為100000的隨機數組,並選用選擇排序的方法...
學習 排序演算法 快排 選擇 冒泡 桶排序
稍微複習 學習 了一下排序的演算法 選擇 冒泡 桶 快排等 下面的 和講解也是這幾種排序,至於歸併 基數啥的想單獨開一篇部落格 以下單獨 均涉及巨集定義,可以先看思路再到最後看巨集定義內容 本部落格針對洛谷p1177排序模板 並已通過大資料對拍 為公升序排序 快速排序 stl 好,直接sort 想降...