![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 65
W_Honor
技术公众号:HonorWang
展开
-
关于折半查找算法
二月底的末唤来了阳春三月的暖,天清气朗,惠风和煦,有时候真想拿着以前放的风筝,冲出去体验一把田野奔跑的欢乐。但也只是想想而已,越来越宅的我始终也离不开手中的笔记本电脑了。 也不知道是气温上升的缘故还是春困突然上头的缘故,看了几天的折半查找算法才算是把它搞懂。 折半查找算法是一种比顺序查找更高效简洁的算法,其查找长度至多为㏒2n+1(判定树的深度),平均查找长度为㏒2(n+1)-1,但是它有一个原创 2016-03-01 12:28:55 · 2387 阅读 · 0 评论 -
关于冒泡排序算法的初学错误认识
关于冒泡排序,我觉得是初学C语言时再也熟悉不过的基本排序算法了,还记得在C语言课上老师“声情并茂”地讲着这个是考试的重点内容。刚开始学的人都以为这是一个再也简单不过的算法了,无非就是两个for循环嵌套嘛!嗯,一开始我也是这样想的,不过随着学习数据结构的深入,我发现了课堂和书本上留下的一个巨大的坑。 先来看你所熟悉的代码,以下称山寨算法:#include<stdio.h>void Maopo(in原创 2016-03-02 22:02:43 · 1649 阅读 · 0 评论 -
同样简单的选择排序算法
同冒泡排序比较起来,选择排序也是由两个for循环构成,其时间复杂度也是O(n^2)。虽然如此,选择排序在一定程度上比冒泡排序还是迅速高效。 选择排序的主要思想是,先拿出未排序序列的第i个元素,然后在其后n-i+1个元素中遍历,目的是挑选出相对较小的元素,然后将最小元素下标拿出与第i个元素下标比较并做出由小到大的元素位置交换。 代码如下:#include<stdio.h>void SelectS原创 2016-03-03 22:00:20 · 512 阅读 · 0 评论 -
关于直接插入排序算法的Bug
直接插入排序,其主要思想是把无序的序列数插入一个有序序列中,简单地打个形象的比方,在打牌时,你手中已经有3、4、6这几张牌,再摸牌,这时抽中一张5,那么按照顺序就把5插入4和6中间,随后,也是一样,把摸到的牌整齐有序地排列起来。 代码如下:#include <stdio.h>void InsertSort(int a[], int n){ int i, j, temp; for原创 2016-03-05 20:58:22 · 718 阅读 · 1 评论 -
透过数据结构看C++的引用&
通过C/C++学习数据结构的同学一定会经常看到结构体指针,其中还夹杂着一个特殊的符号——&,熟悉C语言的人会知道这是个取地址符,但在C++中它还有另一个身份——引用。 一、引用简介 引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。 引用的转载 2016-10-09 19:26:01 · 816 阅读 · 0 评论 -
经典数据算法试题
1、给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?方案1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。 s 遍历文件a,对每个url求取clip_image002,然后根据所取得的值将url分别存储到1000个小文件(记为clip_image转载 2016-09-29 17:52:00 · 481 阅读 · 0 评论