Achiber

代码改变世界,让我们一起默默的努力!
随笔 - 4, 文章 - 2, 评论 - 0, 引用 - 0
数据加载中……

2012年11月23日

模板类

     摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#include <iostream>#include <stdio.h>#include <iostream.h>template&nb...  阅读全文

posted @ 2012-11-23 22:43 王文豪 阅读(99) | 评论 (0)编辑 收藏

模版函数的重载

posted @ 2012-11-23 22:33 王文豪 阅读(74) | 评论 (0)编辑 收藏

模板函数

#include <iostream>
#include 
<cstdio>
using namespace std;

template 
<typename T1 , typename T2>
T2 fun(T1 x,T2 y)
{
     T2 tmp 
= x *+ y * y + x * y;
     
return tmp;
}

int main(){
     
int x1 = 1, y1 = 4;
     
float x2 = 1.1 , y2 = 2.2;
     
double x3 = 2.0 , y3 = 3.1;
     cout 
<< fun(x1, y1) << endl;
     cout 
<< fun(x2, y2) << endl;
     cout 
<< fun(x3, y3) << endl;
     cout 
<< fun(x1, y2) << endl;
     
return 0;
}

posted @ 2012-11-23 22:17 王文豪 阅读(125) | 评论 (0)编辑 收藏

2012年9月15日

堆排序(过程演示)

 

#include <iostream>
#include <cstring>
#include <vector>
#include <queue>
#include <algorithm>

using namespace std;
const int N = 105;
int a[N];

void Heapify(int a[], int i, int size) { /* 大根堆化 使以 i 为根的子树成为最大堆 */
   int ls = 2*i, rs = 2*i+1;
   int large;
   if(ls <= size && a[ls] > a[i]) {
      large = ls;
   }
   else large = i;

      if(rs <= size && a[rs] > a[large]) {
         large = rs;
      }
      if(large != i) {
         swap(a[large], a[i]);
         Heapify(a, large, size);
      }
}
void Build_Heap(int a[], int size) { // 建立堆树
   for(int i = size/2; i >= 1; i--) {
      Heapify(a, i, size);
   }
   for(int i = 1; i <= size; i++){
      printf("%d ", a[i]);
   }
   printf("\n");
}

void Heap_sort(int a[], int size) {
   Build_Heap(a, size);
   int len = size;
   for(int i = len; i >= 2; i--) {
      cout << "首尾未交换时:\n";
      for(int j = 1; j <= size; j++){
         printf("%d ", a[j]);
      }
      cout << endl;
      swap(a[i], a[1]);
      cout << "首尾一次交换结束:\n";
      for(int j = 1; j <= size; j++){
         printf("%d ", a[j]);
      }
      cout << endl;
      len--;
      Heapify(a, 1, len);
   }
}

int main() {
   int n;
   scanf("%d", &n);
   for(int i = 1; i <= n; i++) {
      scanf("%d", &a[i]);
   }
   Heap_sort(a, n);
   cout << endl;
   return 0;
}


 

 

posted @ 2012-09-15 22:16 王文豪 阅读(1812) | 评论 (0)编辑 收藏