幾種排序演算法的實現與比較

2021-07-25 02:25:32 字數 2485 閱讀 6580

/*

**排序演算法比較**

利用隨機函式產生n個隨機整數,利用直接插入排序、折半插入排序,起泡排序、快速排序、選擇排序、堆排序,基數排序七種排序方法進行排序(結果為由小到大的順序),並比較次數和交換次數。

這裡是源**

*/#include

using

namespace

std;

#include

#include

#include

#define low 1

#define high 1000000

#define success 1

#define unsucess 0

#define duplicate -1

#define ok 1

#define error 0

#define list_init_size 30002 // 線性表儲存空間的初始分配量

#define listincreament 200 // 線性表儲存空間的分配增量

#define member 30

#define max_size 200

typedef

int status;

typedef

struct

sorto;

typedef

int status;

typedef

int elemtype;

typedef

struct

sqlist;

status initlist_sq(sqlist &l) // 構造乙個空的線性表

status creatlist(sqlist &l,int len)

for (int i = 1; i <= len; i++)

l.elem[i] = num;

num = 0;

l.length++;

if (l.length + 1>l.listsize) // 如果超出了線性表已申請的空間

}file.close();

return ok;

}status randomnum()

file.close();

return ok;

}status insersort(sqlist &l, sorto &o)

l.elem[j + 1] = l.elem[0];

o.exchange++;}}

return ok;

}status binsertsort(sqlist &l, sorto &o)

for (int j = i - 1; j >= high + 1; j--)

l.elem[high + 1] = l.elem[0];

o.exchange++;

}return ok;

}status bubblesort(sqlist &l, sorto &o)}}

return ok;

}int partition(sqlist &l, int low, int high, sorto &o)

l.elem[low] = l.elem[0];

l.elem[0] = 0;

o.exchange++;

return low;

}status qsort(sqlist &l, int l, int h, sorto &o)

return ok;

}void quicksort(sqlist &l, sorto &o)

status selectsort(sqlist &l, sorto &o)

}if(k!=i)

}return ok;

}status heapadjust(sqlist &l, int s, int m, sorto &o)

l.elem[s] = rc;

o.exchange++;

return ok;

}status heapsort(sqlist &l, sorto &o)

return ok;

}status radixsort(sqlist &l, sorto &o)

; int k;

int n;

int p;

n = 1;

while (n <= 100000)

o.exchange+=2;

temp[k][order[k]] = l.elem[i];

order[k] = 1+order[k];

}p = 1;

for (int i = 0; i < 10; i++)

order[i] = 0;}}

n =n*10;

}return ok;

}void print(sqlist l)

cout

<< endl;

}int main()

幾種排序演算法的實現與比較 c 容器

description 使用插入排序將容器內數進行排序 idea 1.從容器中取數,每次都把取到的數插入到正確到位置。q a 1.q 當拿到乙個數a時,如何將這個數插入到正確的位置?a 將a與已經插入到所有數進行比較,找到第乙個比a大到數字置,在這個數到前面插入之 2.q 如何判斷已經排完序,即結束...

幾種排序演算法的實現和比較

穩定性 穩定 最壞時間複雜度o n 2 最好時間複雜度o n 平均時間複雜度o n 2 void bubble sort int a,int n if flag break 穩定性 穩定 平均時間複雜度o n 2 最壞時間複雜度o n 2 最好時間複雜度o n void insert sort in...

幾種排序演算法比較

資料結構 10 排序十 四 排序 sort thinking in algorithm 12.詳解十一種排序演算法 排序法平均時間 最差情形 穩定度額外空間 備註冒泡 o n2 o n2 穩定o 1 n小時較好 交換o n2 o n2 不穩定o 1 n小時較好 選擇o n2 o n2 不穩定o 1 ...