
算法
文章平均质量分 71
fuming0210sc
这个作者很懒,什么都没留下…
展开
-
看数据结构写代码(2) 选择排序 和 冒泡排序 算法优化
#include "stdafx.h" //都是从小到大排序 void SelectionSort(int * array,int n){ for (int i = 0; i < n-1; i++) { int minIndex = i;//最小值下标 for (int j = i+1; j < n; j++) { if (array[minIndex] > array[j]原创 2015-02-10 11:49:38 · 556 阅读 · 0 评论 -
快速排序
快速排序 最近看标准库的 stdlib库 的 qsort 函数(快速排序算法),看的不太懂, 所以 上网来看看快速排序的算法。以下是我看过之后自己写的一个小例子。 推荐一个博客网站,里面内容通俗易懂,配图很萌。算法博客 void qSortArray(int * a,int left,int right){ if (left > right) { return; } in原创 2015-02-02 11:18:56 · 341 阅读 · 0 评论 -
看数据结构写代码(34) 树与回溯法(二)排序树(8皇后问题)
套用回溯 公式程序: void backtrack (int t) { if (t > n) { // 到达叶子结点,将结果输出 output (x); } else { // 遍历结点t的所有子结点 for (int i = f(n,t); i <= g(n,t); i ++ ) {原创 2015-04-01 16:25:21 · 1181 阅读 · 0 评论 -
看数据结构写代码(32) 赫夫曼树编码以及译码
杂谈:最近有点慵懒,不好不好。好几天都没写代码,原本准备上星期完结 树 这一章节的。现在 又耽误了。哎。要抓紧时间啊。 下面直接上代码: 可以到我的网盘下载源代码,或者 直接拷贝下面的源代码 运行 // HuffmanTree.cpp : 定义控制台应用程序的入口点。 //哈弗曼编码,译码 #include "stdafx.h" #include #include enum E_原创 2015-03-31 14:54:08 · 1344 阅读 · 0 评论 -
定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句 以及 不用 第三个数,交换 a,b的值
无意中 一篇博文,介绍这个问题,引起了我的兴趣。 博文中 介绍了 三种方法: 1. #define max(a,b) ((((a)-(b))&(1 2. #define max(a,b) ((((long)((a)-(b)))&0x80000000)?(b):(a)) 3 #define max(a,b) (((abs((a)-(b)))==((a)-(b)))?(a):(b原创 2015-03-05 13:48:57 · 1349 阅读 · 0 评论 -
用递归实现 hanoi塔
// hanoi.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" void move(int n,char moveStart,char moveEnd){ printf("move %d from %c to %c\n",n,moveStart,moveEnd); } void hanoi(int n,char moveStart,char mov原创 2015-03-05 11:19:56 · 830 阅读 · 0 评论 -
看数据结构写代码(13)栈的应用(四) 迷宫求解
这是一个 用 穷举法 解 迷宫问题 的一个示例,但在 效率 和 解的 最短路径上 就稍显不足了。 这 两个问题,留在 以后 空闲 时刻 解答。 欢迎指出代码不足 下面上代码: // Maze.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include struct Postion { int x; int y; };原创 2015-03-04 10:19:41 · 795 阅读 · 0 评论 -
看数据结构写代码(11)栈的应用(二) 括号匹配的检查
下面代码 可以检查 “() []” 括号不匹配的问题。 这个代码 是在 第9篇 linkStack 的基础上开发的。 在开发中,遇到了3个问题。 一是发现了 linkStack 在 clearStack 时 没有将头指针的后继指向NULL问题。 二是 对 char * a 与 char a[] 认识不够清楚 三是 对 scanf 认识不够清楚 , 当 输入 加入一些空格时,造成 我原创 2015-03-02 17:04:10 · 835 阅读 · 0 评论 -
看数据结构写代码(18) KMP算法
求 子串 的 位置 有两种方法,一种是暴力搜索法,另一种就是KMP 算法。他们的效率 在一般的情况下,区别不大。但是在 串的 变化 范围特别小的情况下,例如 只有 0 和 1,KMP 的时间复杂度是 O(m+n),而暴力搜索法定时间 复杂度 是 O(m*n),(m,n分别指 子串 和 母串的 长度) 暴力搜索非常简单,下面给出代码: // KMP.cpp : 定义控制台应用程序的入口点。 //原创 2015-03-12 10:37:20 · 1248 阅读 · 0 评论