算法
文章平均质量分 71
xyx19890816
这个作者很懒,什么都没留下…
展开
-
求最大公约数
一、欧几里德算法(辗转相除法) 定理:gcd(a,b) = gcd(b,a mod b)。//欧几里得求最大公约数算法 —— 递归版 int gcd_1 (int i, int j){ if (i%j == 0) { return j; } return gcd_1(j,i%j);}//欧几里得求最大公约数算法 —— 非递归版 i原创 2010-01-31 10:25:00 · 758 阅读 · 0 评论 -
动态规划
最大子段和int MaxSum(int* a, int n){ int sum = 0; int b = 0; for (int i = 0; i < n; i++) { if (b > 0) { b += a[i]; } else { b = a[i]; } if (b > sum) { s原创 2010-03-21 00:11:00 · 493 阅读 · 0 评论 -
二分搜索
templateint BinarySearch(Type a[], int n, const Type& x){ int left = 0; int right = n - 1; while (left <= right) { int middle = (left + right)/2; if (x == a[middle]) { return原创 2010-03-21 00:23:00 · 497 阅读 · 0 评论 -
数组循环移位
typedef char DataType;void CyclicShift_1(DataType* arr, int n, int k){ k %= n; while (k--) { DataType t = arr[n-1]; for (int i = n - 1; i > 0; i--) { arr[i] = arr[i - 1]; }原创 2010-03-21 11:37:00 · 517 阅读 · 0 评论 -
经典排序算法(C语言实现)
/* 直接选择排序 ref: 重温经典排序思想--C语言常用排序全解 */void selection_sort(int n){ for (int i = 0; i 0 && x[j-1] > t ; j--) { x[j] = x[j - 1]; } x[j] = t; } }原创 2010-10-10 14:15:00 · 1445 阅读 · 0 评论 -
单链表基本操作
//////////////////////////////////////////////单链表的初始化,建立,插入,查找,删除。////Author:Wang Yong // //Date: 2010.8.19 ////////////////////////////////////////////// #include #include typedef int ElemType;//////////////////////////转载 2010-10-19 22:22:00 · 87798 阅读 · 11 评论 -
单链表常见问题
Node* Reverse(Node* head){ Node *p, *q; q = head; head = NULL; while(q) { p = q; q = q->next; p->next = head; head = p; } return(head);} 参考:1)http://hi.baidu.com/van_%D0%A1%CD%B0/blog/item/3fd42713b82ce45bf819b882.ht原创 2010-10-19 21:33:00 · 2208 阅读 · 0 评论