日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

noj大作业c语言扫雷,noj大作业.doc

發布時間:2023/12/2 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 noj大作业c语言扫雷,noj大作业.doc 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作業名稱:算法演示程序學 院:航海學院班 級:學 號:2013300951姓 名:蘇和團隊組成:

西北工業大學

2015年11月11日

1、問題與背景(描述程序所要解決的問題或應用背景)

C語言經過幾十年的發展已經發展出多種多樣的的排序方法,網上的解釋和 代碼良莠不齊,許多具有嚴重的錯誤,給學習者打來極大的不便。

因此,我將目前比較流行的7種排序法:

1.冒泡排序 2.選擇排序 3.插入排序

4.快速排序 5堆排序 6歸并排序

7.基數排序

加以總結,標明注釋,成為這個演示程序,以供交流學習使用。

2、開發工具(列出所使用的開發工具和第3方開發庫)

Code::block

3、主要功能(詳細說明程序的功能)

基本功能:本程序可實現對100個及以下的數據排列的功能。

拓展功能:1.選擇不同的排序法進行排序。

2.選擇數據正序排列,還是逆序排列。

4、設計內容(詳細描述解決問題的原理和方法、算法、數據結構等)

本程序的數據變換主要在數組中進行。

冒泡排序

相鄰兩個記錄之間進行比較和互換,使較小的記錄逐漸從底部移向頂部。一次排序后最大的記錄沉底,再比較前n-1個記錄直到最后一次排列時只有兩個記錄。排列結束后最小的記錄自然上浮至第一位。

選擇排序

第i趟選擇排序通過n-i次關鍵碼的比較,從n-i+1個記錄中選出關鍵碼最小的記錄,并和記錄i交換。

插入排序

把新插入記錄的關鍵碼與已排好序的逐個比較,但找到第一個比其大的記錄時,該記錄之前即為插入位置k。從序列最后開始到該記錄,逐個后移一個單元,將新紀錄插入k位置。如果新紀錄比其他記錄都大,則插入到最后。

快速排序

通過一趟排序將要排序的記錄分為兩部分,其中一部分比另一部分都要小。再按此方法對兩組數據分別進行遞歸快速排序,從而使序列成為有序序列。

堆排序

先將初始文件R[1..n]建成一個大根堆,此堆為初始的無序區。

再將關鍵字最大的記錄R[1](即堆頂)和無序區的最后一個記錄R[n]交換,由此得到新的無序區R[1..n-1]和有序區R[n]。由于交換后新的根R[1]可能違反堆性質,故應將當前無序區R[1..n-1]調整為堆。然后再次將R[1..n-1]中關鍵字最大的記錄R[1]和該區間的最后一個記錄R[n-1]交換,由此得到新的無序區R[1..n-2]和有序區R[n-1..n],同樣要將R[1..n-2]調整為堆,直到無序區只有一個元素為止。

歸并排序

將已有序的子序列合并,得到完全有序的序列;即先使每個子序列有序,再使子序列段間有序。若將兩個有序表合并成一個有序表,稱為二路歸并。

首先申請空間,使其大小為兩個已經排序序列之和,該空間用來存放合并后的序列。設定兩個指針,最初位置分別為兩個已經排序序列的起始位置。比較兩個指針所指向的元素,選擇相對小的元素放入到合并空間,并移動指針到下一位置。重復直到某一指針超出序列尾。將另一序列剩下的所有元素直接復制到合并序列尾。

基數排序

基數排序法又稱“桶子法”(bucketsort)或binsort,顧名思義,它是透過鍵值的部份資訊,將要排序的元素分配至某些“桶”中,藉以達到排序的作用。

對數據來說,首先根據個位數的數值,在走訪數值時將它們分配至編號0到9的桶子中。接下來將這些桶子中的數值重新串接起來。接著再進行一次分配,這次是根據十位數來分配。接下來將這些桶子中的數值重新串接起來。重復以上過程直到最高位,這時候整個數列已經排序完畢。

5、程序文件與工程名稱(標出程序中所有文件名、工程名稱及其說明)

工程的名稱:排序算法演示程序

包含的程序原文件如下:

1.sort.cpp

主函數、輸入和輸出數據、顯示菜單、選擇排序方法

2. sort_fun.cpp

實現7種排序的函數

3. myh.h

7種排序函數及其附屬函數的聲明

6、函數模塊(程序中各個函數的原型聲明及其說明)

void Bubble(int a[],int n); 冒泡排序

void Selection(int a[],int n); 選擇排序

void Insertion(int a[],int n); 插入排序

void Quick(int a[],int n,int left,int right); 快速排序

void Shift(int a

總結

以上是生活随笔為你收集整理的noj大作业c语言扫雷,noj大作业.doc的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。