計數排序的三種方法

2021-06-07 18:50:56 字數 1242 閱讀 5615

// 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 功能,聚焦下一行資料。...