用模板写快速排序-数组
来源:互联网 发布:淘宝的衣服在哪里批发 编辑:程序博客网 时间:2024/04/29 20:02
今天,我们继续用模板写代码,不断加深模板的熟练程度,今天,我们一起来写一个快速排序,具体如例1所示:
例1 快速排序-数组
ArrayQuickSort.hpp内容:
#ifndef _ARRAY_QUICK_SORT_H_#define _ARRAY_QUICK_SORT_H_template<typename T>bool QuickSort(T * pInput, int nStart, int nEnd){int nLow = nStart;int nHigh = nEnd;T tKey = pInput[nStart];if (!pInput)return false;if (nStart >= nEnd)return true;while (nLow < nHigh){while (nLow < nHigh && pInput[nHigh] > tKey){nHigh--;}if (nLow >= nHigh)break;pInput[nLow] = pInput[nHigh];nLow++;while (nLow < nHigh && pInput[nLow] <= tKey){nLow++;}if (nLow >= nHigh)break;pInput[nHigh] = pInput[nLow];nHigh--;}pInput[nLow] = tKey;return QuickSort<T>(pInput, nStart, nLow-1) && QuickSort<T>(pInput,nLow+1, nEnd);}#endifmain.cpp内容:
#include "ArrayQuickSort.hpp"#include <iostream>using namespace std;void main(){int i = 0;int a[10] = { 1,4,7,2,5,8,3,6,9,0 };cout << "排序前:" << endl;for (i = 0; i < 10; i++){cout << a[i] << '\t';}cout << endl;if (QuickSort<int>(a, 0, 10-1) == false){cout << "排序失败." << endl;}else{cout << "排序后:" << endl;for (i = 0; i < 10; i++){cout << a[i] << '\t';}}system("pause");return;}运行效果如图1所示:
图1 运行效果
今天,我们共同完成了快速排序,希望大家回去多实践,熟练模板的使用。
0 0
- 用模板写快速排序-数组
- 用模板写快速排序-链表
- 用模板写插入排序-数组
- 用模板写冒泡排序-数组
- 用模板写选择排序-数组
- 【排序】快速排序模板
- 【排序】快速排序模板
- 用数组实现快速排序
- 数组排序-快速排序
- 用模板写插入排序-链表
- 用模板写冒泡排序-链表
- 用模板写选择排序-链表
- 快速排序模板
- 快速排序模板
- C++快速排序模板
- C++快速排序模板
- 快速排序(模板)
- 快速排序【模板】
- 20140904,微软九月安全补丁提前通知
- maven profiles
- android ListView详解
- 富文本编辑器开发
- 如果中秋这样醉人,就送个手机吧
- 用模板写快速排序-数组
- 迭代算法与递归算法概述
- 布隆过滤器 (Bloom Filter) 详解
- [FAQ12492] SD卡升级包升级后,如何删除升级包文件?
- UVA - 11029Leading and Trailing(快速幂取模取后三位 + log10()取前三位)
- mina框架:白名单实现
- RTMP流媒体播放过程
- volley的详细使用
- Recovery mode在cache/recovery目录下新建一支文件,重启后,新建文件消失了