// count_sort.cpp : 定義控制台應用程式的入口點。
#include "stdafx.h"
#include using namespace std;
const int len = 100;
class countsort //計數排序類
;countsort::countsort():length(len)
}int *count = new int[max+1];//count陣列記錄陣列中每個元素出現的次數
memset(count,0,(max+1)*sizeof(int));
int *rarr = new int[max+1]; //rarr陣列存放排好序的元素
memset(rarr,0,(max+1)*sizeof(int));
for (int i=0; i=0; t--)
for (int z=0; zmax)
}int *count = new int[max+1];//count陣列記錄陣列中每個元素出現的次數
memset(count,0,(max+1)*sizeof(int));
for (int i=0; i0)
}delete count; }
int _tmain(int argc, _tchar* argv)
{ countsort *pcountsort = new countsort();
cout<<"排序前:"pcountsort->secondsort();
//pcountsort->thirdsort();
cout<<"排序後:"<
vs2008執行正確,如有問題,請各位大牛指正!
計數排序假設n個輸入元素中的每乙個都是介於0到k之間的整數,此處k為某個整數,當 k= o(n)時, 計數排序的執行時間為o(n)。
計數排序的基本思想:對每乙個輸入元素x,確定出小於或等於x的元素個數,有了這一資訊就可以把x直
接放到它最終在輸出陣列中的位置。
不適用情況:陣列中有負數或有少量數極大
演算法分析:
1.時間複雜度為 o(n)。
2.空間複雜度為 o(n)。
3.計數排序不是原地排序演算法(指不申請多餘的空間來進行的排序);
是穩定排序演算法(指在排序前後具有相同關鍵字之間的相對順序保持不變);
不是基於比較的排序演算法,比較排序演算法的時間複雜度為o(n*logn)。
快速排序的三種方法(遞迴)
快排 一.確定基準值有3種 選最左或者最右的那個數作為基準值 三數取中法 就是取left,mid和right三個數中中間的那個數作為基準值 取隨機值作為基基準值 二.將陣列分為兩部分比基準值小的放在左邊,比基準值大的放在右邊 1.hover法 b就是下面 的begin e是end 2.挖坑法 用圓圈...
js實現排序的三種方法
一 冒牌排序1思想 氣泡排序思想 每一次對比相鄰兩個資料的大小,小的排在前面,如果前面的資料比後面的大就交換這兩個數的位置 要實現上述規則需要用到兩層for迴圈,外層從第乙個數到倒數第二個數,內層從外層的後面乙個數到最後乙個數 2特點 排序演算法的基礎。簡單實用易於理解,缺點是比較次數多,效率較低。...
三種方法 2020 11 23
利用連線類,例項化得到連線物件 連線類 連線物件 new 連線類 cmd.executescalar cmd.excutereader 關注其中一條資料 物件名.read 獲取關注列所對應的值 console.writeline 物件名 name while 物件名.read 功能,聚焦下一行資料。...