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