資料結構 資料結構與演算法分析第一章部分題目

2021-08-07 16:57:14 字數 1192 閱讀 8830

1.選擇問題,設有一組n個數要確定其中第k個最大者

為了方便,使用了容器vector工具,但是排序時沒有使用容器內的sort函式,而是重新寫了選擇排序法

演算法首先對前k個元素進行排序,然後再將剩下的元素逐個讀入,當新的元素被讀到時,如果小於陣列中第k個元素則進行忽略,否則放到正確的位置上,並將陣列中的乙個元素擠出陣列。當演算法終止時,位於第k個位置上的元素作為答案進行返回。

完成**如下所示:

//從一組n個數中確定其中第k個最大者

#include #include using namespace std;

int choosek(vectorsrcnum,int k);

int main()

; int k = choosek(a,6);

cout<< k for(int j = 0;jtempvec.at(j))

tempvec.at(j) = srcnum.at(p);

break;}}

}}

return tempvec.at(k-1);

}

1.5 

題目:編寫一種遞迴方法,它用來返回數字n的二進位制表示中1的個數,利用這樣的事實:如果n是奇數,那麼它1的個數等於n/2的二進位制表示中1的個數加1

**如下所示:

#include using namespace std;

int howmanyones(int n);

int main()

void permute(const string & str)

void permute (const string & str,int low,int high)

{ string str1 = str;

if(low == high)

{cout<

演算法的主要思想是將abc 分解成a|bc,再用遞迴思想求bc得全排列,以此類推。

1.10 

題目:估算2^100(mod5)數值

2^100 = (2^10)^10 所以最後一位是6.。。。。

所以餘數是1

利用python進行驗證(這種情況pyhton具有沒有數值型別的優勢。。。)

在python環境下輸入 2**100 可以得到計算結果為  1267650600228229401496703205376

所以餘數是1

資料結構與演算法(一)常用資料結構

什麼是資料 資料元素 資料項 資料物件 資料型別?資料 萬物都是資料,資料就是能輸入計算機和被程式處理的符號 資料元素 資料元素是資料的基本單位 是具體的資料 每乙個學生的資訊就是乙個資料元素 資料項 乙個資料元素由若干個資料項構成 學生的姓名 學號等都是學生資訊資料元素的乙個資料項 資料物件 具有...

資料結構與演算法分析

資料結構與演算法分析可以稱得上是程式設計師必須修煉的內功心法。資料的儲存結構 資料元素在計算機中的儲存方式 資料的操作集合 對一種資料型別的資料所有操作,例如對資料的增刪改查等等!演算法分析主要分析 下面是一些常用資料結構 一 線性表 1.陣列實現 2.鍊錶 二 棧與佇列 三 樹與二叉樹 1.樹2....

資料結構與演算法分析

資料結構 大量資料的組織方法 演算法分析 演算法執行時間的估算。涉及到計算效率。設想,如果能把時間限制從16年減至不到1秒,不很神奇嗎?在很多問題中,乙個重要的觀念是 寫出乙個可以工作的程式並不夠。如果這個程式在巨大的資料集上執行,執行時間就成了重要的 問題。演算法,是為求解乙個問題需要遵循的 被清...