六 排序的有關操作

2021-08-02 18:32:55 字數 1387 閱讀 5394

一、實驗目的

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...