[原始碼和文件分享]基於C++的八大排序演算法的實現與比較
1 概述
排序有內部排序和外部排序,內部排序是資料記錄在記憶體中進行排序,而外部排序是因排序的資料很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。我們這裡說說八大排序就是內部排序。
當 n 較大,則應採用時間複雜度為 O(nlog2n) 的排序方法:快速排序、堆排序或歸併排序。快速排序是目前基於比較的內部排序中被認為是最好的方法,當待排序的關鍵字是隨機分佈時,快速排序的平均時間最短。
參考文件和完整的文件和原始碼下載地址:
https://www.write-bug.com/article/1766.html
相關推薦
[原始碼和文件分享]基於C#和SQL SERVER實現的零食銷售管理系統
第一章 零食銷售管理系統調查與規劃 1.1 系統調查 1.1.1 調查方法與步驟 開調查會:分配調查工作,計劃出任務流程 發調查問卷:以調查問卷的形式,在網路上釋出調查問卷,邀請一些商家對零食管理系統的需求進行調查,瞭解對功能的需求都有哪些 訪問:對使用者進行
[原始碼和文件分享]基於C++的八大排序演算法的實現與比較
1 概述 排序有內部排序和外部排序,內部排序是資料記錄在記憶體中進行排序,而外部排序是因排序的資料很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。我們這裡說說八大排序就是內部排序。 當 n 較大,則應採用時間複雜度為 O(nlog2n) 的排序方法:快速排序、堆排序或歸併排
[原始碼和文件分享]基於C++的9種排序演算法的實現與比較
一、使用說明 1.1 專案簡介 隨機函式產生10000個隨機數,用快速排序,直接插入排序,氣泡排序,直接選擇排序的排序方法排序,並統計每種排序所花費的排序時間和交換次數。其中,隨機數的個數由使用者定義,系統產生隨機數,並且顯示他們的比較次數,排序演算法包括氣泡排序,直接選擇排序,直接插入排序
[原始碼和文件分享]基於C++實現的二叉排序樹
一、使用說明 1.1 專案簡介 依次輸入關鍵字並建立二叉排序樹,實現二叉排序樹的插入和查詢功能。 1.2 專案功能要求 二叉排序樹就是指將原來已有的資料根據大小構成一棵二叉樹,二叉樹中的所有結點資料滿足一定的大小關係,所有的左子樹中的結點均比根結點小,所有的右子樹的結點均比根結點大。
[原始碼和文件分享]基於C++的資料庫可擴容雜湊
一、專案介紹 主要涉及可擴充套件雜湊在資料庫中的應用。 讀入由 tpc-h 生成的 lineitem.tbl,以 L_ORDERKEY 屬性作為鍵值將記錄放入合適的雜湊桶內。讀入測試檔案 testinput.in 內的資料,資料中包含多個需要查詢的鍵值。將通過鍵值查詢得到的所有記錄都輸出到
[原始碼和文件分享]基於C語言實現的流星雨模擬課程設計
一、課程設計內容及要求 程式模擬一組流星飛向地面的情景。地面用多行#來表示,流星用大寫字母不表示。程式產生一組流星(比如10個),從螢幕頂部下降飛向地面。一組流星中,每個流星的字元顏色是隨機的,下降的位置是隨機的,下降的速度也是隨機的。一個流星下落只能去掉一個#號,當最後一行地面有#被去掉時,程
[原始碼和文件分享]基於C++的圖書管理系統
一、需求分析 圖書管理系統功能如下: 新增書籍 刪除書籍:當系統中存在此書時,刪除該書籍,否則提示使用者刪除失敗 借閱書籍:當系統中存在此書且未被借閱時,將書的狀態設定為“借出”,否則提示使用者借閱失敗 歸還書籍:當系統中存在未歸換的該書時,將書的狀態設
[原始碼和文件分享]基於C++的多項式計算器
一、 實驗環境 1.1 程式語言和開發工具 語言採用ANSI C++(C++11) 開發工具:vim,g++,git,Visual Stdio(用於生成exe檔案) 1.2 編碼規範 編碼規範中所有沒有涉及到的內容,參見googlestyle C++
[原始碼和文件分享]基於C++的學生選課管理系統的設計與實現
一 需求分析 系統新增課程:將一門課程加入到系統資料中。課程提交重複時給出提示資訊 系統刪除課程:以課程編號為索引刪除課程。系統無此課程時給出提示 課程新增學生:把學生的姓名、學號等資訊加入到課程中。學號重複時給出提示資訊 課程刪除學生:以學號為索引從課程中
[原始碼和文件分享]基於C++的物資管理系統的設計與實現
一 需求分析 程式需實現以下功能: 新物資資訊錄入(編號、名稱、庫存) 查詢已錄入的所有物資資訊(編號或名稱為索引) 新增物資資訊(編號或名稱為索引) 領物資並生成領料單(編號或名稱為索引) 瀏覽領料單或物資庫存清單 物資資訊儲存,建
[原始碼和文件分享]基於C++的庫存管理系統設計與實現
一 需求分析 1.1 總體要求 運用面向物件程式設計知識,利用C++語言設計和實現一個“庫存管理系統設計”,主要完成對商品的銷售、統計和簡單管理。在實現過程中,需利用面向物件程式設計理論的基礎知識,充分體現出C++語言關於類、繼承和封裝等核心概念,每一個類應包含資料成員和成員函式。 1.
[原始碼和文件分享]基於C++的平面形狀編輯器的設計與實現
一 需求分析 參考如下給出的類層次關係,實現一個平面上的形狀編輯程式序。要求如下: 按照下面類圖給出的層次關係來定義類 所有形狀支援無引數構造,有引數構造,拷貝構造,析構 所有形狀支援平移操作,需要過載 operator+ 所有形狀(除去無意義的)
[原始碼和文件分享]基於C++的民航訂票系統的設計與實現
一、需求分析 設計一個民航管理系統,使更廣大的使用者群體可以藉助這個平臺訂飛機票。 C++作為一個面向物件的語言,利用多型性和封裝性可以更好地表達出這些功能,相比 JAVA 等語言,C++具STL,可以表達更強的封裝性。 二、程式的主要功能 登入和註冊使用者,管理員的登入
[原始碼和文件分享]基於C++的簡易資料庫的開發與測試
一 開發說明 1.1 總體說明 本次專案以c++語言編寫簡易資料庫,資料庫為<key:value>的簡單形式,在本專案中,限定key為整數且不考慮溢位問題,value為字串型別,不可為空,長度最長為19(其中第20位為\0字元)。主體程式面向使用者提供四種主要操作,分別為查詢、新
[原始碼和文件分享]基於C++的公司人員管理系統
一 系統介紹 系統架構如下圖所示,主要包括對公司人員資訊的查詢、修改及儲存管理功能。 二 系統設計 建立了兩個類來實現程式要求,1為People類,定義了一個人員的各種資訊,2為Main類,定義了各種操作函式,main函式裡用switch來選擇操作函式。 實現了以下功能:
[原始碼和文件分享]基於C++的通訊錄系統的設計與實現
一 需求分析 通訊錄系統可幫助使用者管理歸納通訊錄名單,達到新增,刪除,修改,儲存等需求。 二 系統設計 2.1 功能模組設計 通訊錄主要功能為:新增通訊錄成員,修改成員,刪除成員,按需求搜尋檢視成員,儲存為文件。 如下圖所示: 系統各模組的功能具體描述為:
[原始碼和文件分享]基於C++的學生生活系統設計與實現
一 需求分析 需要設計並實現如下場景:在那山的那邊,湖的那邊,有一所學校,學校裡有一幢宿舍樓,宿舍樓有若干層,每一層有若干房間 ,一群學生快樂地生活在這裡。他們每天可做的事情有: 換宿舍,從一個房間搬到另一個房間 退學,亦即搬出宿舍樓 入學,亦即搬入宿舍樓
[原始碼和文件分享]基於C#語言的計算器的設計與實現
一 需求分析 利用c#語言實現一個計算器程式,包括普通計算器模式、科學計算器模式;實現實數(包括正數、負數、0)的加、減、乘、除、平方等基本遠算,並實現非負數的開方運算。 二 程式設計與實現 首先設計主窗體,包括兩個TextBox用來顯示資料,使用資料繫結實現,在Model中實現INot
[原始碼和文件分享]基於C++的學校人事管理系統
某高校,主要人員有:在職人員(行政人員、教師、一般員工)、退休人員、返聘人員和臨時工。現在,需要儲存這些人員的人事檔案資訊:編號、姓名、性別、年齡、職務、職稱、政治面貌、最高學歷、任職時間、來院時間。 程式的基本功能如下所示: 新增刪除功能:能根據學院人事的變動情況,新增刪除記錄
[原始碼和文件分享]基於C語言的個人簡歷錄入程式
一 需求分析 此個人簡歷錄入程式可實現相關資訊的新增、刪除、修改。 通過文字框錄入姓名,通過單選按鈕選擇性別,通過組合框選擇專業(計算機,電子,工商等)和文化程度(大專,本科,碩士,博士等),設定“提交”與“取消”兩個按鍵,當用滑鼠點選“提交”按鍵時,在文字框中顯示所填寫以及選擇的資