常見排序演算法

2021-07-25 04:56:45 字數 1734 閱讀 3058

這幾天閒來無事,,憤懣至極。。。

以前不太認真,看看了事,每次都搞不清誰是誰。。。今天總結一下,順便實現。

1、氣泡排序

public class mpsort implements sortarray

}} return list;

}}

2、直接插入排序

public class insertsort implements sortarray

}} return list;

}}

3、選擇排序

public class selectsort implements sortarray 

nlist.add(list.get(0));

} return nlist;

} // 生成小頂堆

private void smalltopheap(list list, int n)

// 將子節點大於父節點的值替換

if (left > mid && right > mid) else

} else if (left > mid) else if (right > mid)

if (4 * n <= list.size())

if (4 * n + 2 <= list.size())

} }}

5、歸併排序

**如下

看成是 n 個有序的子串行(長度為 1),然後兩兩歸併。

得到 n/2 個長度為2 或 1 的有序子串行。繼續亮亮歸併

最後一趟

// 前方高能

int i = 0, j = 0;

int si = (integer) slist.get(0);

int li = (integer) llist.get(0);

while (i < slist.size() && j < llist.size())

} if(slist.size()>1)

slist=sort(slist);

if(llist.size()>1)

llist=sort(llist);

list nlist = new arraylist();

for(int i =0;i< slist.size();i++)

nlist.add(slist.get(i));

nlist.add(flag);

for(int i = 0;i< llist.size();i++)

nlist.add(llist.get(i));

return nlist;

}}

常見排序演算法

一.選擇排序 1.概念 每次從無序的子陣列裡面選擇最小的數,放在有序區的後面 既與無序區的首元素交換 不穩定排序 時間複雜度o n 2 輔助儲存o 1 2.實現 int selection sort int a,int len len為陣列元素個數 二.氣泡排序 1.概念 重複訪問數列n 1次,每次...

常見排序演算法

1 插入排序 直接插入排序,是一種最簡單的排序方法,它的基本操作是將乙個記錄插入到已排好序的有序表中,從而得到乙個新的 記錄數增1的有序表。初始 38 65 27 76 13 i 1 13 選13為監視哨並假設為乙個有序序列 i 2 13 38 待插入元素38 13 i 3 13 38 65 待插入...

常見排序演算法

排序演算法作為常用的基本演算法,今天就來總結一下各種經典排序演算法,這裡只貼出 對演算法的文字描述可以在課本或其它部落格上找到很多詳盡的敘述,這裡直接上 而不是常見演算法書上的偽 希望對正在努力學資料結構與演算法的朋友們有幫助 1 氣泡排序 void bubblesort t a,int n if ...