设为首页 加入收藏

TOP

快速排序及其应用 (二)
2014-11-23 19:56:06 来源: 作者: 【 】 浏览:14
Tags:快速 排序 及其 应用
rray[j]; while (i < j && array[i] <= pivotKey) { i++; } array[j] = array[i]; } array[i] = pivotKey; return i; } /* 函数名: GetKLeastestNumbers 函数功能: 获取数组中最小的k个数字 函数参数: int *array 数组指针 int length 长度 int k 数组中最小的k个数字 */ void GetKLeastestNumbers(int *array, int length, int k) { /* 判断参数的合法性 */ if (array == NULL || length < 0) { gInputInvalid = true; return; } int middle = k; int start = 0; int end = length - 1; while (start <= end) { int index = Partion(array, start, end); if (index == middle) { break; } else if (index > middle) { end = index - 1; } else { start = index + 1; } } } void Test(const char *testName, int *array, int length, int k) { cout << testName << " : " << endl; cout << "原数组:"; for (int i = 0; i < length; i++) { cout << array[i] << " "; } cout << endl; GetKLeastestNumbers(array, length, k); cout << "最小的k个数:"; for (int i = 0; i < k; i++) { cout << array[i] << " "; } cout << endl; } int main() { int array1[] = {4, 5, 1, 6, 2, 7, 3, 8}; Test("Test1", array1, sizeof(array1) / sizeof(int), 4); int array2[] = {4, 5, 1, 6, 2, 7, 3, 8}; Test("Test2", array2, sizeof(array2) / sizeof(int), 8); int array3[] = {4, 5, 1, 6, 2, 7, 3, 8}; Test("Test3", array3, sizeof(array3) / sizeof(int), 1); return 0; }


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇HDU1011:Starship Troopers(树形.. 下一篇HDU4607+BFS

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Python爬虫教程(从 (2025-12-26 16:49:14)
·【全269集】B站最详 (2025-12-26 16:49:11)
·Python爬虫详解:原 (2025-12-26 16:49:09)
·Spring Boot Java: (2025-12-26 16:20:19)
·Spring BootでHello (2025-12-26 16:20:15)