基本的排序演算法

2021-08-14 08:25:37 字數 1404 閱讀 2742

時間複雜度o(n2) 空間複雜度o(1) 穩定

public

void

bubblesort(int a)}}

}

時間複雜度 o(n2) 空間複雜度o(1) 不穩定

public void selectsort(int a)

}int temp = a[i];

a[i] = a[min];

a[min] = temp;

}}

時間複雜度 o(n2) 空間複雜度o(1) 穩定

public

void

insertsort(int a)

a[j] = temp;

}}

思路:希爾排序的中心思想是將資料進行分組,然後對每一組資料進行插入排序,在每一組資料都有序後,再對所有的分組利用插入排序進行最後一次排序。

希爾排序時間複雜度平均為o(nlogn),最好與最壞情況要根據具體的增量序列來判斷,最壞為o(n2),空間複雜度o(1),不穩定。

public

void

shellsort(int a)

a[left] = a[i];

a[i] = t;

quicksort(a,left,i-1);

quicksort(a,i+1,right);

}

歸併排序的執行時間最差、最好和平均都是o(nlogn),空間複雜度為o(n)。因為沒有資料交換,所以是穩定的。

public static void mergesort(int a)

public static void remergesort(int a,int

left,int

right,int temp)

}public static void mergearray(int a,int

left,int

mid,int

right,int temp)

while(i<=m)

while(j<=n)

for(i=0;ileft+i] = temp[i];

}}

時間複雜度 o(nlogn) 空間複雜度o(1) 不穩定

public

static

void

heapsort(int a)

for (int i = a.length - 1; i > 0; i--)

}public

static

void

heapadjust(int a,int i,int length)

a[i] = temp;

}

基本的排序演算法

演算法思路 假設a 1 n 是乙個有n個元素的陣列。首先從a 1 n 找到最小元素,將其放在a 1 中 從a 2 n 中找到最小元素,將其放在a 2 中 重複a i n 中找到最小元素,將其放在a i 中 直至i n 1 元素比較次數 n i 1 n i ni 1i n n 1 2 時間複雜度為o ...

基本的排序演算法

容易的演算法效率比較低,但是容易理解。每乙個python的排序函式都會使用乙個swap的函式來交換列表中的兩項的位置,函式的 如下 def swap lyst,i,j 交換lyst中的i和j位置的item temp lyst i lyst i lyst j lyst j temp pass或者pyt...

基本的排序演算法

原理 比較兩個相鄰的元素,將值大的元素交換到右邊 思路 依次比較相鄰的兩個數,將比較小的數放在前面,比較大的數放在後面。function bubblesort arr bubblesort arr1 首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置。再從剩餘未排序元素中繼續尋找最小 大...