MOOC清华《面向对象程序设计》第3章编程题第1题:重载函数运算符以封装排序算法
来源:互联网 发布:淘宝店铺网名昵称大全 编辑:程序博客网 时间:2024/06/05 19:27
请设计实现一个重载函数运算符的类,使用该类的对象可以完成对整数数组从大到小排序。示例:设该类对象名为obj,整数数组名为array,元素个数为N,则obj(array, N); 将修改array的内容,使其中的元素从大到小排序。(本题不计入总成绩) 提交要求:请将各个源文件(*.h, *.cpp)合并打印到一个PDF文件上传,要求各文件首行用注释说明文件名称。建议源代码中加上必要的注释,以便阅读。
//main.cpp#include <iostream>#include "Test.h"using namespace std;int main() {Test obj;int array[20] = {30,38,3,32,15, 1,41,47,59,80, 6,93,78,18,65, 60,51,22,17,31};obj(array, 20);return 0;}
//Test.h#ifndef Test_h#define Test_hclass Test{public:void operator() (int* array, int N);};#endif
//Test.cpp#include <iostream>#include "Test.h"using namespace std;void Test::operator() (int* array, int N){void QuickSort(int* array, int start, int end);void OutputOfArray(int* array, int n); QuickSort(array, 0, N);OutputOfArray(array, N);}void QuickSort(int* array, int start, int end) { if(start >= end - 1) return; int left = start, right = end; int pivot = array[left]; int temp = 0; for(int i = left + 1; i < right; ) { if(array[i] > array[left]) { temp = array[left]; array[left] = array[i]; array[i] = temp; left++; i++; } else { temp = array[i]; for(int j = i; j < right; j++) array[j] = array[j + 1]; array[right - 1] = temp; right--; } } array[left] = pivot; QuickSort(array, start, left); QuickSort(array, left + 1, end); } void OutputOfArray(int* array, int n) { for(int i = 0; i < n; i++) cout << array[i] << '\t';cout << endl; }
测试结果:
阅读全文
0 0
- MOOC清华《面向对象程序设计》第3章编程题第1题:重载函数运算符以封装排序算法
- MOOC清华《面向对象程序设计》第3章编程题第2题:重载下标运算符以统计分段人数
- MOOC清华《面向对象程序设计》第3章:函数运算符重载实验
- MOOC清华《面向对象程序设计》第3章:赋值运算符重载实验
- MOOC清华《面向对象程序设计》第3章:流运算符重载实验
- MOOC清华《面向对象程序设计》第3章:下标运算符重载实验
- MOOC清华《面向对象程序设计》第3章:前缀/后缀运算符重载实验
- MOOC清华《面向对象程序设计》第2章:函数重载实验
- MOOC清华《面向对象程序设计》第4章编程题:按照调试级别输出调试信息
- MOOC清华《面向对象程序设计》第2章:new/delete运算符实验
- MOOC清华《VC++面向对象与可视化程序设计》第3章:编程作业-艺术字的显示
- MOOC清华《面向对象程序设计》第3章:拷贝构造函数实验
- MOOC清华《面向对象程序设计》第3章:移动构造函数实验
- MOOC清华《程序设计基础》第5章第4题:用递归算法实现选择排序
- MOOC清华《面向对象程序设计》第9章:听课感想
- MOOC清华《面向对象程序设计》第7章:统计考试及格率v5.3(采用函数对象)
- MOOC清华《面向对象程序设计》第2章:函数参数的缺省值实验
- MOOC清华《面向对象程序设计》第4章:继承基类构造函数实验
- 1005 ——CaoHaha's staff
- effective C++ 条款八解读
- 总结
- HDU
- 【ADO】浅识“EOF与BOF”
- MOOC清华《面向对象程序设计》第3章编程题第1题:重载函数运算符以封装排序算法
- ES6之-字符串的新特性
- HDU
- 人生苦短,少打游戏
- 分支结构(switch)
- HDU CCPC 1005 CaoHaha's staff
- 跨域资源共享 CORS 详解
- //将一个ANSI编码格式纯文本文件以UTF-8的形式读到另一个文件中去
- MySQL初学学习的一点细节上小经验记载