資料結構 各類排序演算法的實現

2021-09-01 12:45:47 字數 1367 閱讀 2414

#include#include#include#includeconst int n=1e3+10;

using namespace std;

/*給出n個學生的考試成績表,每條資訊由姓名和成績組成,

試運用各種排序思想設計演算法並比較其效能,要求實現:

a.按分數高低次序,列印出每個學生在考試中獲得的名次,分數相同的為同一名次;

b.按名次列出每個學生的姓名與分數。*/

typedef struct node

bool operator < (const node & p)const

}student;

typedef node type;

student a[n];

int n;

/*void swap(student &a, student &b)*/

void createtable()

}void output()

cout<<"第"a[k+1]=tmp;}}

output();

}void bubblesort()

if(i=r)

//*tmp; //可能指標分配出問題,導致程式無法執行

//type *tmp=(type *)malloc(sizeof(type)*(r-l+2));

type *tmp=new type[r-l+1];

if(t==null)

if(tmp==null)

mid=(l+r)/2;

mergesort(t,l,mid);

mergesort(t,mid+1,r);

i=l; j=mid+1; k=0;

while( i<=mid && j<=r )else

}while(i<=mid)

while(j<=r)

for(i=0;i<=r-l;i++)

delete tmp;

return;

}void adjustdown(type a, int i, int n)

if(a[i]=0;i--)

}void heapsort(type a, int n)

}int main()

heapsort(b,n);

for(int i=0;icout<<"第"

return 0;}/*

510 a

6 b8 d

7 c10 e

*//* //除錯歸併排序

student b[n];

for(int i=0;imergesort(b,0,n-1);

for(int i=0;icout<<"第"

*/

Python實現各類資料結構和演算法 計數排序

計數 排序 假設前提 n個輸入元素中的每乙個都是在0到k區間內的乙個整數,其中k為某個整數 基本思想 對每乙個輸入元素x,確定小於x的元素個數。利用這一資訊,就可以直接把x放到它 輸出陣列中的位置上了。例如 如果有17個元素小於x,則x就應該放在第18個輸出位置上。當有幾個元素相同時,這一方案要略作...

資料結構 排序演算法

include include define maxitem 100 typedef char keytype 5 typedef int elemtype typedef struct rec elemnode maxitem 氣泡排序演算法 void bubblesort elemnode r,...

資料結構 排序演算法

排序演算法分為內部排序和外部排序兩大類。內部排序 在計算機記憶體中完成的排序演算法 外部排序 不能再記憶體中文完成,必須在磁碟或者磁帶上完成的排序演算法 內部排序是研究的重點問題,通常我們講的八大排序演算法也主要是講的內部排序演算法。排序演算法的穩定性和時間空間複雜度 本文重點介紹以下幾種排序演算法...