1、氣泡排序
氣泡排序是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果它們的順序錯誤就把它們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端。
演算法描述
實現**如下:
function bubblesort(arr)
}
}
return
arr;
}
時間複雜度計算:最佳情況:t(n) = o(n) 最差情況:t(n) = o(n2) 平均情況:t(n) = o(n2)。
2、選擇排序
表現最穩定的排序演算法之一,因為無論什麼資料進去都是o(n2)的時間複雜度,所以用到它的時候,資料規模越小越好。唯一的好處可能就是不占用額外的記憶體空間了吧。理論上講,選擇排序可能也是平時排序一般人想到的最多的排序方法了吧。
選擇排序(selection-sort)是一種簡單直觀的排序演算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。
演算法描述
n個記錄的直接選擇排序可經過n-1趟直接選擇排序得到有序結果。具體演算法描述如下:
實現**如下:
function selectionsort(arr)
}
temp = arr[i];
arr[i] = arr[minindex];
arr[minindex] = temp;
}
return
arr;
}
時間複雜度計算:最佳情況:t(n) = o(n2) 最差情況:t(n) = o(n2) 平均情況:t(n) = o(n2)。
3、插入排序
插入排序(insertion-sort)的演算法描述是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序在實現上,通常採用in-place排序(即只需用到o(1)的額外空間的排序),因而在從後向前掃瞄過程中,需要反覆把已排序元素逐步向後挪位,為最新元素提供插入空間。
演算法描述
一般來說,插入排序都採用in-place在陣列上實現。具體演算法描述如下:
實現**如下:
function insertionsort(arr)
arr[preindex+1] = current;
}
return
arr;
}
時間複雜度計算:
最佳情況:t(n) = o(n) 最壞情況:t(n) = o(n2) 平均情況:t(n) = o(n2)
java常用排序演算法
一 選擇排序 public class numbersort private static void read string args private static void print int arrays system.out.println private static void select...
java常用排序演算法
氣泡排序演算法 public static void bubbsort int a 演算法思想 由陣列頭部開始,每次比較兩個元素,順序不滿足就進行交換,當前陣列最大值 最小值 會被放在最後。一趟排序完成,然後同樣的方法進行後面的比較。插入排序演算法 public static void inssor...
java常用排序演算法
一 順序查詢 前提條件 無 從所傳入集合的一段開始,順序掃瞄,並以此將掃瞄到的值與所傳如德key值進行比較。若有值與其相等,則表明查詢成功 若掃瞄結束後仍沒有值與key值相等,則表明查詢失敗。示例 public int seqsearch int r,int k return 1 缺點 執行效率低 ...