原创 C++ 棧的應用實例

有一個整數集合{23,56,11,4,87,98},將它們依此存入某數據結構,然後輸出,要求輸出的順序爲:11,4,56,98,87,23 #include<iostream> #include"stack.h" using namesp

原创 學習算法第三篇:查找算法

1.順序查找 順序查找主要是針對順序文件運行的查找指定關鍵記錄的算法,根據物理存儲地址是否相連又分爲連續順序文件和鏈接順序文件。這裏講的是連續順序文件: 算法的想法十分直觀簡單 (1)從文件的第一個記錄開始,將每個記錄的關鍵字與給定的關鍵

原创 C++ 散列表

template<typename datatype>class hashtable { public:hashtable(int size){maxsize=size;count=0;elements=new datatype[maxs

原创 學習算法第一篇:排序算法

1.插入排序 適合對少量元素進行排序的有效算法,插入算法採用的方法和我們平時打牌是相似的,每抽一張牌,都會按花色大小插到合適的位置。每次從數據集裏拿來一個數據,就將它放置到已排序隊列的正確位置。 例如: 有一個待排序列{4,9,7,20,

原创 學習算法第二篇:排序算法

1.快速排序 該算法是一種運用分治思想的算法,它的主要思想是:有待排序數組S={d1,d2,d3,....dn},從中找出元素V,我們稱之爲劃界元素,將剩下的元素中小於或等於V的元素移動到V的前面,將大於或等於V的元素移動到V的後面,這樣

原创 約瑟夫

約瑟夫問題源於一個猶太人的故事,相傳在羅馬入侵的時候,猶太人決定寧死不降,於是決定了一個自殺方式,所有41個人排成一個圓圈,從第一個人開始報數每報數到3人,這個人就得自殺,然後再由下一個人重新報數。直到剩下最後一個人自殺。Josephus

原创 數論有關基本算法c+

基本數論概念 1.約數  用符號d/a表示d除以a,即存在某個整數k,使得a=kd。其中a稱爲d的倍數。如果d/a,且d>0,則稱d 是a的約數。 2.素數  素數是指一個大於1的整數a,如果它只能被平凡約數1和它本身整除,那麼這個數就

原创 C++ 二叉樹

二叉樹結點定義 template<class datatype>class binarytreenode { public:binarytreenode()//空結點//{data=NULL;lchild=NULL;rchild=NULL

原创 水仙花數

水仙花數:一個n位數的各位數字的n次冪的和恰好等於這個n位數本身,那麼這個數就叫做水仙花數。比如371=3(3)+7(3)+1(3 ) 題目要求:設計一個程序,找出所有3位數的水仙花數 #include<iostream> using

原创 三色球

題目要求:有16個球,其中白色球5個,黑色球4個,藍色球7個,如果從中無返回任意取出10個球,請編寫一個程序計算出3種顏色都有的情況下多少種顏色搭配,並輸出每一種顏色搭配。 分析:解決這類問題,最直接的方法就是窮舉法。窮舉出所有可能的解

原创 Java入門筆記

父類的靜態方法可以被子類的靜態方法覆蓋 父類的非靜態不能被子類的靜態方法覆蓋‘ 父類的靜態方法不能被子類的非靜態方法覆蓋 覆蓋是用於父類 和子類之間 關鍵點是在聲明對象引用時:son m=new Son();  math m=new S

原创 java 字符串,表達式,等陷阱

1. 關於字符串的陷阱 java程序中創建對象的常規方式有如下4種: 通過new()調用構造器創建java對象 通過class對象的newInstance()方法調用構造器創建java對象 通過java的反序列化機制從IO流中恢復jav

原创 java 數組和內存

java數組的初始化分爲兩種方式: 靜態初始化:初始化時由程序員顯示指定每個數組元素的初始值,由系統決定數組長度 動態初始化:初始化時程序員只指定數組長度,由系統爲數組元素分配初始值。 不管採用哪兒種方式初始化Java數組,一旦初始

原创 常見java集合的實現細節

一、set 和map  set 代表一種集合元素無序、集合元素不可重複的集合,map則代表一種由多個key-value對組成的集合,map集合類似於傳統的關聯數組。表面上看它們之間相似性很少,但實際上兩者之間有莫大的關聯,可以說,map是

原创 通過一些實例 學Java

1.書店管理實例(TreeMap樹狀映射表) 在Map中如果經常插入、刪除和定位元素,最好用HashMap; 如果要經常遍歷鍵,那麼TreeMap會更好。實際應用中會根據集合大小,先把元素添加到HashMap再把這種映射轉換成一個用於有序