原创 先進先出生產者消費者模式實現

以下代碼未經編譯調試,可能編譯不過。只是大概寫了下實現。 #include <iostream> #include <queue> using namespace std; class CBuffer { private:

原创 1.4 歸併排序

歸併排序(MERGE-SORT)是建立在歸併操作上的一種有效的排序算法,該算法是採用分治法(Divide and Conquer)的一個非常典型的應用。將已有序的子序列合併,得到完全有序的序列;即先使每個子序列有序,再使子序列段間

原创 1.5 冒泡排序

算法: 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。 針對所有的元素重複以上的步驟,除了最後一個。 持續每次對越來越少的元

原创 智能指針總結比較

智能指針總結比較 智能指針是對象,不是指針,是在棧空間分配內存,所以總會調用到析構函數。都是輕量級的對象,速度與原始指針相差無幾,都是異常安全的,對所指向的T只有一個要求:類型T的析構函數不能拋出異常。智能指針在析構時調用del

原创 boost線程循環打印字符ABC

// PrintString.cpp : 定義控制檯應用程序的入口點。 // #include "stdafx.h" #include <boost\thread\thread.hpp> #include <boost\thre

原创 1.3 快速排序

快速排序是由東尼·霍爾所發展的一種排序算法。在平均狀況下,排序 n 個項目要 Ο(nlogn) 次比較。在最壞狀況下則需要 Ο(n2) 次比較,但這種狀況並不常見。事實上,快速排序通常明顯比其他 Ο(nlogn) 算法更快,因爲它

原创 1.1基數排序

基數排序(radix sort)屬於“分配式排序”(distribution sort),又稱“桶子法”(bucket sort)或bin sort,顧名思義,它是透過鍵值的部份資訊,將要排序的元素分配至某些“桶”中,藉以達到排序

原创 1.2 堆排序

堆排序(Heapsort)是指利用堆這種數據結構所設計的一種排序算法。堆積是一個近似完全二叉樹的結構,並同時滿足堆積的性質:即子結點的鍵值或索引總是小於(或者大於)它的父節點。堆排序可以說是一種利用堆的概念來排序的選擇排序。分爲兩