排序函数模板
来源:互联网 发布:深入理解java反射机制 编辑:程序博客网 时间:2024/06/05 11:56
- #include <iostream>
- using namespace std;
- template <typename T,typename S>
- void swap(T array[], S a,S b)
- {
- T temp = array[a];
- array[a] = array[b];
- array[b] = temp;
- }
- template <typename T,typename S>
- void siftdown(T array[], S size, S i)
- {
- S t,flag = 0;
- while(2*i <= size && flag == 0)
- {
- if(array[i] < array[2*i])
- t = 2*i;
- else
- t = i;
- if(2*i+1 <= size)
- if(array[t] < array[2*i+1])
- t = 2*i+1;
- if(t != i)
- {
- swap(array,t,i);
- i = t;
- }
- else
- flag = 1;
- }
- }
- template <typename T,typename S>
- void Sort(T array[], S size)
- {
- S i,tsize = size/2;
- for(i = tsize; i > 0; --i)
- siftdown(array,size,i);
- while(size > 1)
- {
- swap(array,1,size);
- size--;
- siftdown(array,size,1);
- }
- }
- int main()
- {
- int n,i;
- double array[20];
- cin >> n;
- //要从下标为1的位置开始输入才可以成功排序
- for(i = 1; i <= n; ++i)
- cin >> array[i];
- Sort(array,n);
- for(i = 1; i <= n; ++i)
- cout << array[i] << " ";
- return 0;
- }
0 0
- 快速排序函数模板
- 调用函数模板排序
- 排序函数模板
- 排序函数模板
- 排序函数模板(改)
- 排序函数模板
- 排序函数模板
- 排序函数模板
- 排序函数模板
- 函数模板排序
- 【十四】排序函数 模板
- 排序函数模板
- 排序函数模板
- 函数模板排序
- 排序函数模板
- 经典排序函数模板
- 冒泡排序的模板函数
- 函数模板实现冒泡排序
- ios大话 观察者模式(Observer)
- ls命令常用方法
- POJ 1679 The Unique MST
- 操作系统
- 浮点数之坑
- 排序函数模板
- 论文笔记 UberNet : Training a ‘Universal’ Convolutional Neural Network
- μc/os 系统学习-任务2
- Spark RDD编程(二)
- 常见排序算法_java版本
- 操作系统 (计算机管理控制程序)
- 2016/9/11--一周的工作总结
- listView item 部分刷新
- 理解Volley -- Android 学习之路