- 博客(4)
- 资源 (51)
- 收藏
- 关注
原创 C++中获取高精度时间差
解决一个问题通常有多种方法, 我们总想找到最高效的,所以需要对比不同算法执行所用的时间。可惜的是,C++中提供的方法一般只能精确到毫秒级。提供一种更加精确的方法。编写一个函数,可以在C++中这样写:__declspec (naked) unsigned __int64 GetCpuCycle( void ) { _asm { rdtsc ret }} RDTSC的返回值存放在EDX EAX中, EDX为高32位,EAX为低32位。这里的 RD
2010-09-30 10:56:00 1146
原创 HDU 2504 又见GCD
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2504意思就是,已知gcd(a,c)=b,和a,b,求最小的c,其中c!=b。原以为既然c!=b,那么最小的当然是2b啦,可是提交了发先WA。回头分析发现,不是这么简单,原因在于a可能是c的倍数,比如若a=6b,那么c=2b,3b,4b都不是答案,因为这时候gcd(a,c)=2b,3b,2b。既然如此,只好一个一个试了,从2b开始,一次增加b,直到gcd(a,c)=b。代码如下:
2010-09-27 08:44:00 2869
原创 《算法导论》(二)--堆排序
<br /><br />中间计算复杂度与递归式太晕了,看的不甚明白,现在自感功力不够,修为不够,以后回头再看。。<br />终于弄明白了堆排序的方法。。调整堆有点麻烦,记得时刻保持堆的性质就好了。。<br /> <br />#include <iostream>using namespace std;#define LENGTH 10int heap_size=0,size=LENGTH;void max_heapify(int array[],int i){//下标的问题要注意 i
2010-09-21 08:45:00 459
原创 《算法导论》(一)--插入排序与合并排序
插入排序书上说的很好,用打牌作比方。就是一边是排好序的,剩下的是待排序的,每次取一个待排序的元素,找到按序的位置,插入已排好序的部分中。元素取完也就结束了。复杂度O(n^2)。代码: 1#include 2 usingnamespace std; 3 #define LENGTH 11 4 5 void insert_sort(int array[],int len) 6{ 7int i,j; 8 9for (i=1;i10 {11int key=array[i];12for (j=i-1;j>=0
2010-09-01 18:41:00 895 1
高质量程序设计指南--C++/C语言(第3版)
2011-09-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人