一、實驗目的
1、掌握常見的排序演算法的思想及其適用條件。
2、掌握常見的排序演算法的程式實現。
二、實驗儀器及環境:
pc計算機;windows xp作業系統、visual c++6.0
給出n個學生的考試成績表,每條資訊由姓名和分數組成,試設計乙個演算法:
按分數高低次序,列印出每個學生在考試中獲得的名次,分數相同的為同一名次;按名次列出每個學生的姓名與分數。
要求至少使用3種以上的排序方法(必須包含快速排序演算法)。
#include #include #define maxsize 100
using namespace std;
typedef struct list
stu;
stu r[maxsize+1];
int shuru()
for(i=1;i<=n;i++)
return n;}
void charupaixu(stu a,int n)
if(l!=i)
}for(i=1;ia[i+1].score)
else
}mingci[n]=p;
for(i=1;i<=n;i++)
} void shellinsertsort(stu a, int n, int dk)
a[j+dk] = x;
}}}
void shellsort(stu a, int n)}
void xierpaixu(stu a,int n)
else
}mingci[n]=p;
for(i=1;i<=n;i++)
}void sortt(stu *a, int left, int right)
int i = left;
int j = right;
stu key = a[left];
while(i < j)
a[i] = a[j];
while(i < j && key.score <= a[i].score)
a[j]= a[i];
}a[i] = key;
sortt(a, left, i - 1);
sortt(a, i + 1, right);}
void kuaisupaixu(stu a,int n)
else
}mingci[n]=p;
for(i=1;i<=n;i++)
} int main()
排序的方法有很多,各有各的優越性,但在資料量極小的情況下,各種排序方法體現不出它的特點和時間上的優化,個人還是認為快速排序更加實用一些。
實驗六 排序綜合
氣泡排序 1 定義順序表的儲存結構 2 在順序表上實現氣泡排序 3 將普通的氣泡排序進行多次改進以提高排序速度,並用大量資料測試其速度的提高。快速排序 1 定義順序表的儲存結構 2 在順序表上實現快速排序 3 用大量的資料測試最好 最壞和平均情況下的排序速度。堆排序 1 定義順序表的儲存結構 2 在...
java基礎知識六 排序
排序方式 1.氣泡排序 描述 氣泡排序是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。快速排序 快...
資料結構 實驗六 排序
本次實驗實現排序中的直接插入 氣泡排序 快速排序 簡單選擇排序 堆排序等排序演算法。下面放一下自己的 include include include datahead.h define maxsize 20typedef intkeytype typedef struct redtype typed...