摘要:
刷题遇到一道Prim最小生成树算法的实现的题目,重新温习一下最小生成树算法:首先本人不是很会画图,那就直接拿百度百科的图片来研究说明以下:图如下:此算法用来求解一个包含图中所有顶点,且其边权值之和也为最小。如这个图我们可以找到以下边:AD, DF, AB, BE, EC, EG 这样的是包含所有的... 阅读全文
摘要:
题目描述 Description 每样商品的价格越低,其销量就会相应增大。现已知某种商品的成本及其在若干价位上的销量(产品不会低于成本销售),并假设相邻价位间销量的变化是线性的且在价格高于给定的最高价位后,销量以某固定数值递减。(我们假设价格及销售量都是整数) 对于某些特殊商品,不可能完全由市场去... 阅读全文
摘要:
无意中看到有一个同学在自己的博客中写到了linux的纳新笔试题的自己的见解,写的还是不错的,但是有些问题还没弄得太明白,这是我之前写在raysnote的一篇文章,现在把它公示出来,如果有感兴趣的同学的话可以参考一下。1.解释下面程序的输出结果:int main(int argc, char *arg... 阅读全文
摘要:
对于栈这个数据结构来说,其实它本身数据存储形式与线性表相同,但是从数据结构来看,他们又有较大不同,而区分他们的就是栈的“后进先出”的特点。 而实现这种特点的原因就是栈的插入与删除元素都是在栈的一边进行的,而那个边的元素称为栈顶。当a1,a2...an插入时,从栈顶到栈底分别是an...a1。 ① ... 阅读全文
摘要:
在算法思想上,对于单链表的快速排序和对于数组的快速排序基本一致,但是同时也存在很大的区别,导致的原因我们也很容易明白,那就是单链表不支持像数组那样的方便的访问下标,也就是说我们无法对其进行从末尾向前遍历。所以我们将第一个链表第一个结点的值作为左轴,然后向右进行遍历,设置一个small指针指向左轴的下... 阅读全文
摘要:
记着大概是一个月以前的四月一号,我第一次得知我期盼已久的Linux兴趣小组开始纳新了,那时的我激情满怀,决定这个月好好学习,为linux面试做准备,接下来的一个月,我开始写raysnote,写了很多linux的命令学习笔记,写了一篇算法导论的学习笔记,写了点数据结构与算法的学习笔记,日常刷刷题... 阅读全文
摘要:
前面两篇主要扯了些排序的算法,这些算法写的过程中都是应用于数组实现的,那么如何应用于链表实现这些排序算法呢?先给出我对链表的结构体的定义以方便阅读算法代码:typedef struct node { struct node *next; int data;}CNode, *Linklist;①冒泡排... 阅读全文
摘要:
继续上一次的排序算法的总结,今天带来的是线性时间排序算法可以看到,我们之前的交换算法时间复杂度最少也只是O(nlogn),那么有没有O(n)的时间复杂度的算法呢,也是有的,就是线性时间排序算法。常见的线性时间算法有:计数排序,基数排序和桶排序,而基数排序和桶排序十分类似,这里只介绍更为普遍的基数排序... 阅读全文
摘要:
对于排序是我们日常中最常用的算法之一,那么我们来总结一下排序算法,我们先不分析线性时间排序①冒泡排序:(1)算法思想:冒泡排序一般是第一个接触的排序算法,他的思想是两两进行比较,先将较小的数冒出,进而再冒出大些的数。比较好理解(2)时间复杂度:O(n^2)(3)算法描述:void bubble(in... 阅读全文