![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法设计
midoxinxin
做一个安静美男子 ~~~~~~~
展开
-
cs50 算法 程序设计 笔记(1)
hello.cgcc编译器 命令行参数nano hello.c gcc -o hello hello.c -lcs50 ./hello-o hello hello为指定文件名 -lcs50 cs50 连接我的程序代码到一个叫cs50程序的系统中 ./ 表示在当前目录下运行程序原创 2015-10-07 21:16:12 · 911 阅读 · 1 评论 -
算法(三)-冒泡排序算法
冒泡算法原理:将临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束。冒泡排序过程设想被排序的数组R[1..N]垂直竖立,将每个数据元素看作有重量的气泡,根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R,凡扫描到违反本原则的轻气泡,就使其向上”漂浮”(交换位置),如此反复进行,直至转载 2015-10-13 09:50:02 · 368 阅读 · 0 评论 -
数据结构(八)二叉树遍历
示例1 二叉树是一种树形结构,遍历就是要让树中的所有节点被且仅被访问一次,即按一定规律排列成一个线性队列。二叉(子)树是一种递归定义的结构,包含三个部分:根结点(N)、左子树(L)、右子树(R)。根据这三个部分的访问次序对二叉树的遍历进行分类,总共有6种遍历方案:NLR、LNR、LRN、NRL、RNL和LNR。研究二叉树的遍历就是研究这6种具体的遍历方案,显然根据简单的对称性,左子树和右子树的遍原创 2015-10-12 22:30:53 · 716 阅读 · 0 评论 -
算法(一)求链表中的倒数第K 个结点
采用两个指针,第一个指针提前k-1步向下走,第二个指针再随着第一个指针一直走。知道第一个指针指向末尾,第二个指针的元素的值,便是我们所要求得的值。 p1 = link->next; for(i=1;i<k;i++){ p1 = p1->next; } p2 = link->next; while(p1->next!=NULL){转载 2015-10-14 23:06:53 · 511 阅读 · 0 评论 -
数据结构(七)链表
二维数组 是数组的数组,每一行作为一个二维数组的元素(当成一个线性表来看),可以把数组看成一个顺序存储的线性表。原创 2015-10-12 23:09:26 · 386 阅读 · 0 评论 -
算法(二)字符串转化为整数
把字符串转换成整数 .【题目】输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串”345”,则输出整数345。 【分析】这道题尽管不是很难,学过C/C++语言一般都能实现基本功能,但不同程序员就这道题写出的代码有很大区别,可以说这道题能够很好地反应出程序员的思维和编程习惯,因此已经被包括微软在内的多家公司用作面试题。建议读者在往下看之前自己先编写代码,再比较自己写的代码和下面的转载 2015-10-14 22:22:04 · 519 阅读 · 0 评论 -
数据结构(十)完全二叉树节点个数计算
二叉树第k层最多有2的(k-1)次方个节点第六层最多有32个节点 第五层最多有16个节点 第四层最多有8个节点 第三层最多有4个节点 第二层最多有2个节点 第一层最多有1个节点完全二叉树的叶节点只可能出现在后两层如果完全二叉树有6层,则前5层是满二叉树,总节点数目为16+8+4+2+1+8=39如果完全二叉树有7层,则前6层是满二叉树, 前六层总节点数目为32+16+8+4+2+1=6原创 2015-10-12 22:09:18 · 7268 阅读 · 0 评论 -
快速排序
今天介绍快速排序,这也是在实际中最常用的一种排序算法,速度快,效率高。就像名字一样,快速排序是最优秀的一种排序算法。思想快速排序采用的思想是分治思想。快速排序是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值 都不小于基准值,如此作为基准的元素调整到排序后的正确位置。递归快速排序,将其他n-1个元素也调整到排序后的转载 2016-07-03 15:49:39 · 343 阅读 · 0 评论