算法分析与设计
KevinIceFire
走在路上,跑起来。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
整数十进制转换成二进制
#include #include #include using namespace std; void fConvert(long n, vector& bit) { stack tempstack; long temp = n; while (temp != 1) { long temp1 = temp % 2; tempstack.push原创 2013-08-05 10:44:18 · 871 阅读 · 0 评论 -
素数问题(计算2-100内的素数,以及判断一个数是否为素数)
#include #include using namespace std; void getPrime(long count, vector &prime) { for (long index = 2; index <= count; index++) { bool iPri = true; for (long i = 2; i < index; i++)原创 2013-08-05 12:53:12 · 1397 阅读 · 0 评论 -
链表的简单操作
#include #include #include using namespace std; typedef struct student { int data; struct student *next; }node; node *create() { node *head, *p, *s; int x, cycle = 1; head =原创 2013-08-05 13:13:44 · 670 阅读 · 0 评论 -
快速排序算法 C++代码
首先让我们来看看算法导论>上面的算法逻辑 QUICKSORT(A, p, r)//快速排序算法 if (p { q = PARTITION(A, p, r)//分成左右两半,一半不大于A[r], 一半不小于A[r] QUICKSORT(A, p, q-1)//递归左半 QUICKSORT(A, q+1, r) //递归右半 } PARTITION(A, p, r) x原创 2013-08-06 10:28:51 · 984 阅读 · 0 评论 -
简单入门程序:汉诺塔
#include #include using namespace std; void Hanoi(int n, char a, char b, char c) { if (n == 1) { cout " << c << endl; } else { Hanoi(n - 1, a, c, b); cout " << c << endl;原创 2013-08-06 13:01:04 · 576 阅读 · 0 评论 -
常用排序算法稳定性分析
【1】选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法 冒泡排序、插入排序、归并排序和基数排序都是稳定的排序算法。 【2】研究排序算法的稳定性有何意义? 首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前两个相等的数据其在序列中的先后位置顺序与排序后它们两个先后位置顺序相同。 再简单具体一点,如果A i == A j,Ai 原来在 Aj 位置前,排序后 Ai 仍然转载 2013-08-06 21:38:47 · 658 阅读 · 0 评论 -
堆排序算法 C++
堆排序过程 堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]] >= A[i]。在数组的非降序排序中,需要使用的就是大根堆,因为根据大根堆的要求可知,最大的值一定在堆顶。 既然是堆排序,自然需要先建立一个堆,而建堆的核心内容是调整堆,使二叉树满足堆的定义(每个节点的值都不大于其父节点的值)。调堆的过程应该从最后一个非叶子节点开始,假设原创 2013-08-07 09:36:00 · 2564 阅读 · 2 评论 -
面试经典题目:字符串的反转算法
#include using namespace std; char *strrev1(const char *str) { int len = strlen(str); char *temp = new char[len + 1]; strcpy(temp, str); for (int i = 0; i < len / 2; i++) { char原创 2013-08-05 11:01:27 · 808 阅读 · 0 评论
分享