本以为以前看过的算法书都说快速排序是最好的排序算法,也没有想过,闲着无聊变写了一个关于基数排序的算法简单分析了一下应该时间复杂度比快速排序小,于是编程实现果然结果要比快速排序快,对两者都
1000000个数排序快速排序一般要700多毫秒,基数排序一般要200毫秒,
10000000个数排序的情况就更明显了前者需要30秒左右,而后者只需要3~5秒左右。算法测试如下
#include<iostream>
#include <ctime>
#include <cstdlib>
#include "time.h"
#include "stdlib.h"
using namespace std;
int * createNumbers(int length );
void display(int *A,int length);
void quickSort(int *A,int l,int r);
void radixSort(int *A,int length);
int main()
{
time_t c_start, c_end;
int l=1000000;
int *A=createNumbers(l);
int *B=new int [l];
int *C=new int [l];
for(int i=0;i<l;i++){
B[i]=A[i];
C[i]=A[i];
}
delete A;
//快速排序的时间检测
c_start = clock();