数据结构、笔试面试
仗剑走海角
豪爽!乐观开朗!
展开
-
快速排序算法分析、代码实现
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速原创 2014-08-05 11:17:32 · 688 阅读 · 0 评论 -
归并排序的实现
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。[cpp] view plaincopy原创 2014-09-17 22:25:19 · 812 阅读 · 0 评论 -
单链表的建立、测长、打印、删除节点、插入节点
单链表的操作注意事项:1原创 2014-09-04 13:07:03 · 703 阅读 · 0 评论 -
直接插入排序算法分析、代码实现
直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。 设数组为a[0…n-1]。1. 初始时,a[0]自成1个有序区,无序区为a[1..n-1]。令i=12. 将a[i]并入当前的有序区a[0…i-1]中形成a[0…i]的有序区间。原创 2014-08-06 09:00:28 · 1171 阅读 · 0 评论 -
OSI七层模型详解(物理层、数据链路层、网络层、传输层.....应用层协议与硬件)
OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 。完成中继功能的节点通常称为中继系统。在OSI七层模型中,处于不同层的中继系统具有不同的名称。 一个设备工作在哪一层,关键看它工作时利用哪一层的数据头部信息。网桥工作时,是以MAC头部来决定转发端口的,因此显然它是数据链路层的设备。原创 2014-09-21 00:07:06 · 232366 阅读 · 9 评论 -
求一个字符串中连续出现次数最多的子串
/* Author: Mcdragon Date: 15-07-11 21:17 Description: 求一个字符串中连续出现次数最多的子串. 基本算法描述: 给出一个字符串abababa 1.穷举出所有的后缀子串 substrs[0] = abababa; substrs[1] = baba原创 2014-08-07 16:09:30 · 872 阅读 · 0 评论 -
希尔(shell)排序算法分析与代码实现
希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很原创 2014-08-05 21:09:12 · 722 阅读 · 0 评论 -
程序员笔试知识点整理(C/C++)
http://blog.csdn.net/tianmo2010/article/details/68201750、常考基础必知必会A. 排序:排序有几种,各种排序的比较,哪些排序是稳定的,快排的算法;B. 查找:哈希查找、二叉树查找、折半查找的对比,哈希映射和哈希表的区别?C. 链表和数组的区别,在什么情况下用链表什么情况下用数组?D. 栈和队列的区别?E. 多态,举例说明转载 2014-08-06 09:09:43 · 2459 阅读 · 0 评论 -
数据结构之图(存储结构、遍历)
一、图的存储结构1.1 邻接矩阵 图的邻接矩阵存储方式是用两个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组(邻接矩阵)存储图中的边或弧的信息。 设图G有n个顶点,则邻接矩阵是一个n*n的方阵,定义为: 看一个实例,下图左就是一个无向图。 从上面可以看出,无向图的边数组是一原创 2014-08-04 17:11:01 · 1384 阅读 · 0 评论 -
C语言 单链队列操作
#include #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 typedef int Status; typedef char QElemType; typedef struct QNode{//队列元素结构 QElemType data;原创 2014-08-02 22:32:34 · 879 阅读 · 0 评论 -
堆与堆排序、二叉堆定义、对的插入与删除
堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总原创 2014-09-17 22:23:05 · 10656 阅读 · 3 评论