Data Structure
WQP_Ya_Ping
程序员的自我修养。。。
展开
-
浅谈红黑树的添加删除操作
红黑树的性质(牢记) 1、每个结点的颜色只能是红色或黑色。 2、根结点必须是黑色的。 3、每个叶子结点都带有两个空的黑色结点(被称为黑哨兵null),如果一个结点n的只有一个左孩子,那么n的右孩子是一个黑哨兵;如果结点n只有一个右孩子,那么n的左孩子是一个黑哨兵。 4、如果一个结点是红的,则它的两个儿子都是黑的。也就是说在一条路径上不能出现相邻的两个红色结点。 5、从任何一个结点到其子孙叶原创 2016-05-26 11:33:56 · 1621 阅读 · 0 评论 -
选择、快速排序算法实现
排序算法在笔试面试中是常考的知识点之一,其中的选择排序和快排算法经常会要求面试者手写。由 于其代码量短小并且可以在短时间内考察出面试者的编程习惯和基本功。为了提高巩固自己的基本功,所以在此实现两个算法的源码,也供大家评阅://FileName: Sort Algorithm//Author : WQP_Ya_Ping//Date : 2016-5-13//打印原数组vo原创 2016-05-13 14:18:56 · 696 阅读 · 0 评论 -
卡特兰数相关问题
详见链接::http://blog.csdn.net/han_xiaoyang/article/details/11938973原创 2016-05-12 17:32:42 · 371 阅读 · 0 评论 -
查找算法及二叉平衡树
查找的分类: 1.静态查找 2.动态查找 3.哈希查找1.1顺序查找法//应用范围:顺序表或线性链表表示的表,表内元素之间无序。// 在数组arr中查找等于k的元素,若找到,则函数返回该元素的位置,否则返回0//平均查找长度:ASL = 1/n∑(n-i+1) = ½(n+1)int SeqSearch(int arr*, int key){ int i ; for(i原创 2016-05-27 14:44:39 · 536 阅读 · 0 评论 -
常见排序算法大全
声明:本节全称利用一维数组展开讨论,排列后结果均为由小到大 1、直接插入排序 思想:数据r[0]到r[i-1]是有序的,r[i]到r[n-1]是任意次序的。将r[i]插入到r[0]到r[i-1]中并使得r[0]到r[i]有序。i从1开始到结束进行n-1次。//直接插入排序//时间复杂度O(n^2),空间复杂度O(1),稳定void InsertSort(int *a,int n){原创 2016-05-28 13:53:00 · 311 阅读 · 0 评论 -
剑指Offer算法精炼(2)
//FileName :: Algorithm.cpp(剑指Offer)//Author :: Weiqp//Date :: 2016-6-14/*1. 输出链表倒数第K个节点 思想:使用两个指针p1,p2,起初同时指向链表头节点,先让p1向前走K-1步,然后两个指针同时向后移动, 当p1指向链表末尾,即p1->next为空时,p2此时正好指向倒数第K个节点*/#原创 2016-06-26 19:34:35 · 433 阅读 · 0 评论 -
剑指Offer算法精炼
//File:: test.cpp//Author:: Weiqp//Date:: 2016-6-4# if 0# include <iostream>using namespace std;void main(){ int n[][3] = {10,20,30,40,50,60}; int (*p)[3]; p = n; // 10原创 2016-06-05 20:18:51 · 457 阅读 · 0 评论