
数据结构与算法
Ven_J
这个作者很懒,什么都没留下…
展开
-
qsort详解
最近在研究快速排序,发现C语言标准库中有一个快速排序的函数qsort。原型:#include void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));描述:qsort函数的作用是将包含有nmemb个size大小的元素的数组进行排序。参数bas原创 2015-07-05 14:40:18 · 785 阅读 · 0 评论 -
数组和链表的优缺点
数组和链表的优缺点数组,在内存上给出了连续的空间。链表,内存地址上可以是不连续的,每个链表的节点包括原来的内存和下一个节点的信息(单向的一个,双向链表的话,会有两个)。数组优于链表的:A. 内存空间占用的少,因为链表节点会附加上一块或两块下一个节点的信息。但是数组在建立时就固定了。所以也有可能会因为建立的数组过大或不足引起内存上的问题。B. 数组内的数据原创 2015-05-27 15:54:49 · 1235 阅读 · 0 评论 -
哈希表概述
哈希: 就是找一个数据内容和数据存放地址之间的映射关系。在直接寻址方式下,具有关键字k的元素被存放在了槽k中,在散列方式下,该元素存放在槽h(k)中,即利用散列函数h计算出槽的位置。哈希函数的两个问题:1、哈希函数的选择2、冲突的解决方式哈希函数:1、除法散列法, h(k) = k mod m 将k映射到原创 2015-05-27 15:54:07 · 498 阅读 · 0 评论 -
稳定排序和不稳定排序
稳定排序和不稳定排序 首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj,Ai原来在位置前,排序后Ai还是要在Aj位置前。其次,说一下稳定性的好处。排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。原创 2015-05-27 15:40:56 · 912 阅读 · 0 评论 -
栈和队列
栈栈是一种后进先出(LIFO)的容器。栈限定了只能在栈顶进行插入或删除操作。跟栈相关的是递归操作。因为每次递归都会自动创建栈来保存当前的状态。也就是说,递归实现的算法都可以用栈来实现。栈的两种基本操作:Push:在栈顶插入一个元素。Pop:将栈顶元素弹出。栈的实现分为两种:顺序栈:使用数组来实现的栈。顺序栈的实现简单,但是会存在栈满的情况原创 2017-06-11 11:56:54 · 361 阅读 · 0 评论