回顧資料結構 之 2 隨機生成演算法測試用例

2021-10-05 09:32:53 字數 1792 閱讀 7181

建立這個,為了在此測試

此命名空間下建立函式

在主函式呼叫的使用方法:

sorttesthelper::函式名(引數)

宣告#include

srand()

rand()

srand為rand提供種子

srand(time(null))保證每次呼叫產生的數字不同

宣告#include \

產生確定範圍的隨機數:

int ix = rand() % 100產生0-100的隨機數

int y = rand() % 100 +1產生1-100的隨機數

int z = rand() % (rangel - ranger + 1) + rangel產生rangel~ranger範圍內的隨機數

assert()

宣告#include \

作用: assertion就是在程式中的一條語句,它對乙個boolean表示式進行檢查,乙個正確程式必須保證這個boolean表示式的值為true;如果該值為false,說明程式已經處於不正確的狀態下,assert將給出警告或退出。一般來說,assertion用於保證程式最基本、關鍵的正確性

在軟體開發中是一種常用的除錯方式,很多開發語言中都支援這種機制。

在此使用:

assert

(rangel<=ranger)

;

來保證最基本的範圍的正確性。

對陣列輸出的操作也可寫成乙個函式

放在命名空間sorttesthelper內

使用時直接呼叫命名空間下的函式即可

template

<

typename t>

void printarray (t arr,

int n )

sorttesthelper.h 完整**如下:

#ifndef sorttesthelper_h_included

#define sorttesthelper_h_included

#include

#include

#include

#include

using

namespace std;

namespace sorttesthelper

return arr;

}template

<

typename t>

void printarray (t arr,

int n)

}#endif

// sorttesthelper_h_included

主函式:

#include

#include

"student.h"

#include

"sorttesthelper.h"

//自己設定的標頭檔案 用雙引號標出 放在main.cpp的宣告中

using

namespace std;

template

<

typename t>

void selectionsort ( t arr,

int n )

intmain()

回顧資料結構與演算法1

資料結構 儲存資料的不同方式 演算法 同一問題不同的解決方法 陣列 演算法 每次插入需分配新空間 插入慢 查詢快 鍊錶 演算法 每次插入指標指向即可 插入快 查詢慢 如何選擇演算法 大o表示法 1 時間測算 時間複雜度 big o long before system.currenttimemull...

演算法(2) 資料結構

資料結構是指相互之間存在著一種或多種關係的資料元素的集合和該集合中資料元素之間的關係組成 簡單來說,資料結構就是設計資料以何種方式組織度儲存在計算機中 比如 列表 集合和字典等都是一種資料結構 程式 資料結構 演算法 資料結構的分類 資料結構按照邏輯結構可分為線性結構 樹結構和圖結構 線性結構 資料...

資料結構與演算法之隨機演算法與快速排序

快速隨機排序的思路是從乙個陣列中隨機選擇乙個主元,然後將這個主元放到陣列的最後.迴圈陣列時,先定義乙個指標,發現了比主元小的元素,如果指標和迴圈下標相同 則只是把指標自增,如果發現迴圈下標不同則將迴圈下標與指標位置交換,這樣做的目的是始終保證指標左邊的元素小於主元,最後迴圈結束將主元與指標位置交換....