模板实现冒泡(不同类型的元素)排序
来源:互联网 发布:2000数据库置疑修复 编辑:程序博客网 时间:2024/05/29 11:13
真是学着忘着,学着忘着…
学的东西已经快要忘光了,说到底,还是自己没有深刻的理解并掌握。
提醒自己:再简单的知识你不会就是不会,永远不要对学过的小知识或者简单的知识不屑一顾,可能下次你跳进的坑就是这些小的知识点为你而挖的。
#pragma once#define _CRT_SECURE_NO_WARNINGS 1#include<iostream>using namespace std;template<typename T>class Greate{public : bool operator()(const T& left, const T& right)//仿函数 { return left > right; }};template<typename T>class Less{public : bool operator()(const T& left, const T& right)//仿函数 { return left < right; }};template<typename T, class Compare>void BubbleSort(T* array, size_t sz){ for (size_t i = 0; i < sz - 1; i++) { bool isChange = true;//在每次从头开始排序时都需要初始化标志位 for (size_t j = 0; j < sz - i - 1; j++) { if (Compare()(array[j], array[j + 1]))//调用仿函数、类似于无名对象 { isChange = false; T tmp = array[j]; array[j] = array[j + 1]; array[j + 1] = tmp; } } if (isChange)//在排序过程中,如果发现有一趟没有进行交换,那么说明已经有序了 { break; } }}template<typename T>void Show(T* array, size_t sz){ for (size_t index = 0; index < sz; index++) { cout << array[index]<<" "; } cout << endl;}void Test1(){ double array[] = { 0.1, 3.3, 9.1, 2.2, 4.7, 6.0 }; int array1[] = { 1, 3, 9, 2, 4, 6 }; BubbleSort<int, Greate<int> >(array1, sizeof (array1) / sizeof(array1[0])); Show(array1, sizeof (array1) / sizeof(array1[0])); BubbleSort<double, Less<double> >(array, sizeof (array) / sizeof(array[0])); Show(array, sizeof (array) / sizeof(array[0]));}int main(){ Test1(); return 0;}
0 0
- 模板实现冒泡(不同类型的元素)排序
- 模板实现冒泡排序
- 自己实现一个bubble_sort(冒泡排序),可以完成不同类型数据的排序
- 自己完成一个冒泡排序(bubble_sort),可以完成不同类型数据的排序
- 冒泡排序C++模板实现
- 函数模板实现冒泡排序
- C++模板实现冒泡排序
- 【C++】通过模板实现一个通用的冒泡排序
- 用C#实现对数组元素排序(冒泡法)
- 基于模板的冒泡排序
- 冒泡排序的模板函数
- 起泡排序(冒泡排序)的实现
- 冒泡排序的实现
- 冒泡排序的实现
- 冒泡排序的实现
- 冒泡排序的实现
- 冒泡排序的实现
- 冒泡排序的实现
- Android属性动画完全解析(上),初识属性动画的基本用法
- 北邮OJ-271. 旋转图像-14计院上机(第二套)B
- AJAX-原理解析
- ios 关于GCD多线程使用
- Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法
- 模板实现冒泡(不同类型的元素)排序
- c语言的10个基本程序(5—10)
- CDSN的Markdown编辑器测试
- 北邮OJ-272. 网络的核-14计院上机(第二套)C
- Vim 攻略
- jQuery.hash 插件 JavaScript/jQuery 解析URL
- Linux小结
- Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法
- lambda/c++