三種簡單排序分析

2021-09-06 23:01:42 字數 1091 閱讀 3447

一、氣泡排序

氣泡排序的原理就是按順序取出數列中相鄰的兩個數,依次比較,互換位置,最終完成排序的目的。

時間複雜度:如果序列的初始狀態為「正序」,則氣泡排序只需要進行一次排序,在排序的過程中只需要進行n-1次比較,且不移動記錄;反之,如果序列的初始狀態為「逆序」,則需要進行n(n-1)/2次比較和記錄移動。因此氣泡排序的時間複雜度為o(nn)。

因此可以對一般的氣泡排序進行優化:

空間複雜度:是指這個排序演算法中用到的變數是否根據排序數列數的數量變化而變化,氣泡排序用到的變數是確定的,空間複雜度為o(1)。

穩定性:判斷乙個排序演算法是否穩定,是根據序列中某乙個數在排序前和排序後在序列中的位置有無發生變化來判斷,所以氣泡排序是穩定的。

二、選擇排序

i(代表第幾趟排序指標的位置),k(代表每一次排序指向的最小的數),j(遊走的指標,每一趟排序指向不同的數)這樣的情況下,j下標主要是保證每次排序後都可以把最小的值排到最前面

時間複雜度:最好情況o(n),最差情況o(nn),平均時間複雜度為o(nn)

空間複雜度:o(1)

穩定性:穩定

三、插入排序

插入排序就是把乙個數列分成有序數列和待序數列,每次從待序數列中取出乙個數,然後把它插入到有序數列中。

時間複雜度:最好的情況下是o(n),最壞的情況下是o(nn),平均時間複雜度為o(n*n)

空間複雜度:o(1)

穩定性:穩定

最後可以在測試類中檢驗**的正確性。

三種簡單排序

1.氣泡排序 氣泡排序是一種簡單的排序演算法,其基本思想如下 1 從第乙個開始起,比較相鄰的兩個元素的大小,如果前乙個比後乙個大,則進行交換 也就是小的冒上去 2 然後再和之前相鄰元素進行比較,若小,則冒上去。2 重複以上操作,直到最後乙個元素。1 public static void bubble...

三種簡單排序演算法

一 氣泡排序 外層迴圈out,從n 1逐漸減小,內層迴圈in,從0逐漸增加到out,進行比較swap。package com.xwiam.algorithms.sort public class bubblesort public void insert long value public int ...

三種簡單排序方法

氣泡排序 以從小到大說明 實現如下 var arr 45 12,45 78,12 88,96 11 從大到小 for var j 1 j arr.length j console.log arr 選擇排序 實現如下 var arr 45 421,5 89,4 6,457,2 33,555,78 以從...