各種排序演算法

2021-06-27 05:57:32 字數 1112 閱讀 5733

今天總結一下各種排序演算法:

n=10000的int陣列.

1    插入排序

void insert_sort(int data, int n)

data[j+1] = key;

}}

耗時:0.054s

2    氣泡排序

void bubble_sort(int data, int n)

}}

耗時:2.183s

3  選擇排序

void select_sort(int data, int n)

}}

耗時:2.025s

4  堆排序

void heapify(int data, int n, int i)

}void build_heap(int data, int n)

void heap_sort(int data, int n)

}

耗時:0.013s

5    歸併排序

void merge(int a, int lena, int b, int lenb)

while(i < lena) res[k++] = a[i++];

while(j < lenb) res[k++] = b[j++];

for(int i = 0; i < lena+lenb; ++i)

a[i] = res[i];

delete res;

}void merge_sort(int a,int n)

}

耗時:0.005s not in place

6    快速排序

//quick sort

int partition(int a, int begin, int end)

swap(a[i], a[end]);

return i;

}void quick_sort(int a, int begin, int end)

}

耗時:0.008s in place

排序 各種排序演算法

每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子表中適當位置,直到全部記錄插入完成為止 待排序的記錄放在陣列r 0,n 1 中 排序過程中將r分成兩個子區間,有序區r 0,i 1 無序區r i,n 1 將當前無序區的第1個記錄,插入到有序區中適當的位置上 每次是有序區增加乙個記錄,知道...

各種排序演算法

交換函式 void swap int a,int b 氣泡排序 氣泡排序 bubble sort,台灣譯為 泡沫排序或氣泡排序 是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排...

各種排序演算法

include include include using namespace std void swap int a,int b void output int a,int n 直接插入排序 時間複雜度o n 2 void insertsort int a,int n 折半插入排序 o n 2 只...