0001 #include <stdio.h> 0002 #include <string.h> 0003 #include <stdlib.h> 0004 #include <time.h> 0005 #include "_share/util.h" 0006 #include "UniPrint/print.h" 0007 #include "vector/vector.h" 0008 #include "quickSelect.h" 0009 0010 int main ( int argc, char* argv[] ) { //基于快速划分的k选取算法测试 0011 if ( 2 > argc ) { printf ( "Usage: %s <n>\a\a\n", argv[0] ); return 1; } 0012 int n = atoi ( argv[1] ); 0013 if ( n < 1 ) { printf ( "Invalid arguments\a\a\n" ); return 1; } 0014 srand ( ( unsigned int ) time ( NULL ) ); 0015 // 随机生成向量 0016 Vector<int> A; //以整型为例 0017 while ( A.size() < n ) //继续不断插入n,直至共有n个元素 0018 A.insert ( A.size(), rand() % n ); 0019 print ( A ); 0020 // 计算众数 0021 quickSelect ( A, n / 2 ); print ( A ); 0022 // 通过排序进一步验证 0023 A.sort(); print ( A ); 0024 // 返回 0025 return 0; 0026 }