問題:輸入數字a1,a2,a3...an,使其公升序輸出。
1、插入排序-insertion sort
·演算法:
這個演算法從陣列的第二個元素開始迴圈,將選中的元素與之前的元素一一比較,如果選中的元素小於之前的元素,則將之前的元素後移,最後再將選中的元素放在合適的位置。在這個演算法執行的過程中,總是保持著索引i之前的陣列是公升序排列的。
package algorithm;
public abstract class insertsort
numbers[j + 1] = currentnumber;}}
}
·running time:
·逆序情況耗時最多
·執行時間上界t(n)=θ(n²);
2、歸併排序-merge sort
·演算法:
將兩個(或兩個以上)有序表合併成乙個新的有序表 即把待排序序列分為若干個子串行,每個子串行是有序的。然後再把有序子串行合併為整體有序序列。
·running time
遞迴表示式:
t(n)=2t(n/2)+o(n)
時間複雜度為o(nlogn)
演算法(一)排序
一 o n 2 的排序演算法 1.選擇排序 selection sort 先找到最小的 public static void selectsort int arr 2.氣泡排序 bubble sort 先找到最大的 public static void bubblesort int arr 3.插入...
java演算法(一) 排序演算法(上)
排序 sort 是將一組資料按照一定的規則來進行排列,一般按照遞增或者遞減的順序來進行排列。排序演算法是一種最基本的演算法,但是在實際應用中非常廣泛,對於初學程式設計人來說,排序演算法也是最基本的演算法之一。本節主要講解排序演算法中相對簡單的幾種,分別是 1 氣泡排序 2 選擇排序 3 插入排序 後...
演算法學習(一) 排序演算法
參考 排序 氣泡排序是一種很簡單也很常見的排序演算法,我們在初學程式語言,尤其是初學陣列的時候,應該都了解過氣泡排序,下面就當複習吧。public static void pubblesprt int array,int left,int right 氣泡排序 從陣列下標left開始,依次比較相鄰兩...