演算法簡介:
功能描述:
函式原型:
#include
#include
void
myprint
(int val)
void
test01()
intmain()
函式原型:
#include
#include
#include
class
myprint};
void
test01()
for_each
(v.begin()
, v.
end(),
myprint()
);cout << endl;
//打亂順序
random_shuffle
(v.begin()
, v.
end())
;for_each
(v.begin()
, v.
end(),
myprint()
);cout << endl;
}int
main()
總結:**random_shuffle洗牌演算法比較實用,使用時記得加隨機數種子
功能描述:
函式原型:
#include
#include
class
myprint};
void
test01()
vector<
int> vtarget;
//目標容器需要提前開闢空間
vtarget.
resize
(v1.
size()
+ v2.
size()
);//合併 需要兩個有序序列
merge
(v1.
begin()
, v1.
end(
), v2.
begin()
, v2.
end(
), vtarget.
begin()
);for_each
(vtarget.
begin()
, vtarget.
end(),
myprint()
);cout << endl;
}int
main()
總結:merge合併的兩個容器必須的有序序列
功能描述:
函式原型:
#include
#include
class
myprint};
void
test01()
intmain()
總結:reverse反轉區間內元素 三 排序演算法
所有例子都是公升序排序。資料分成兩部分 已排序和待排序。排序過程中,資料移動分為兩種 1.直接移動 移動資料的儲存位置,消耗時間 2.邏輯移動 改變指向這些資料的指標 特點 遍歷待排序資料,把最小值與起始資料 最左邊 交換位置 次數 第一輪n 1次,第k輪n k次 步驟 1.如果待排序資料大於0,則...
演算法基礎(三) 排序
我們先來看看幾種排序的結構圖 排序是否穩定 比如 排序前 25 7 6 4 29 3 排序後 22 3 4 5 6 7 9 排序前藍2在紅 2前面,排序後藍 2依然在紅 2前面,則所用的排序方法是穩定的。如果排序後,紅 2有可能在藍 2前面,那麼所用的排序方法是不穩定的 下面說說前面幾種排序的時間複...
(三)排序演算法之選擇排序
選擇排序和之前說的氣泡排序和插入排序套路差不多,都是將陣列分隔為已排序和未排序子陣列,主要區別在於元素選取和放入。選擇排序是從未排序陣列中選最小 或最大 的乙個放入已排序的陣列後。下面用 分隔已排序和未排序陣列,如 待排序資料 7,0,2,8,1 一開始有序陣列是空的 一次排序 0 7,2,8,1 ...