
Algorithm
alex_my
不要忘记学习
展开
-
algorithm
// 快速排序 void QuickSort(int left, int right, int* a) { int p(left); int q(right); int temp,mid; mid = a[left]; while(p < q) { while(a[p] < mid) ++p; while(a[q] > mid) --q; if(p < q) { temp = a[p]; a[p]原创 2013-01-24 09:23:55 · 727 阅读 · 0 评论 -
算法的力量 -- 1
计算一个整数n的二进制中有多少个1 n &= n - 1; // 每次消除一个1 int ones(int n) { int _count = 0; while (n != 0) { n &= n - 1; ++_count; } return _count; }原创 2013-03-06 11:14:32 · 615 阅读 · 0 评论 -
时间复杂度
1、 O(1) 2、例子: O(1) Temp=i;i=j;j=temp; 以上三条单个语句的频度均为1,该程序段的执行时间是一个与问题规模n无关的常数。算法的时间复杂度为常数阶,记作T(n)=O(1)。如果算法的执行时间不随着问题规模n的增加而增长,即使算法中有上千条语句,其执行时间也不过是一个较大的常数。此类算法的时间复杂度是O(1)。转载 2013-03-02 20:37:21 · 648 阅读 · 0 评论