数据结构与算法
文章平均质量分 67
wbx9011
这个作者很懒,什么都没留下…
展开
-
剑指offer35:第一个只出现一次的字符(hash表使用)
题目:在字符串中找出第一个只出现一次的字符。分析:思路一:第一次遍历,从第一个开始,当前字符和以后的字符比较,如何没有相同的,则此字符为所求字符。此方法可以实现,但时间复杂度很低,为o(n*n)思路二:(1)只遍历一次,把每种字母对应到一个hash表中 (2)第二次遍历的时候,找到hash中为1的来就是要输出的字母原创 2015-06-20 19:07:54 · 889 阅读 · 1 评论 -
剑指offer2--二维数组中的查找(数组使用)
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:因为是从左到右,从上到下都是按照顺序的,所以先从右上角开始找。(1)从第一行开始,右上角最后一个,如果当前数比要找的数大,则向左移动。(2)如果当前的数,比要找的数小,则向下移动。原创 2015-06-21 09:46:23 · 725 阅读 · 0 评论 -
快速排序
所谓的快速排序,就是在一些中,找一个数(假设为a)为基准,把这些数分成两部分,一部分小于等于a,另一部分大于a。思路:(1)在这些数中,设置一个指针指向第一个(low),一个指针指向最后一个(high)。设置一个基点(取第一个)为v(2)从高位置high开始,如果*high > v,则high--,然后看low,如果*low(3)交换*low和*high(4)递归执行上面的原创 2015-06-22 21:38:20 · 560 阅读 · 0 评论 -
排序——堆排序
一、什么是堆堆是具有如下性质的完全二叉树。每个节点大于或者等于其左右孩子结点的值,称为大顶堆。或者每个结点的值都小于或者等于左右孩子结点的值,称为小顶堆。二、如果通过堆排序由堆的定义可以知道,在堆中,顶点最大(或者最小)。我们就可以把堆顶拿出来,再把剩下的再次组成堆。然后再拿出堆顶。这样就实现排序啦。还需要解决两个问题:(1)如何把一凌乱的数据组成堆(2)把原创 2015-06-23 09:58:48 · 640 阅读 · 0 评论 -
选择排序---简单选择排序 堆排序
一、简单选择排序对于n个数要进行n次排序,第一次,将最小的数放在第一个。第二次,将第二小的树,放在第二个。。。。每次都和后面的数做比较,如果是从小到大的排序,当当前的数字比后面的大时,要进行交换。#include void chosesort(int a[],int length){ int i,j,temp; for(i=0;i<length;i++) f原创 2015-07-13 16:41:06 · 756 阅读 · 0 评论 -
数据结构与算法——插入类排序(直接插入排序,希尔排序)
一、直接插入排序对于一个有序的序列,不断将后面的元素插入前面的有序序列,保持序列继续有序。对于直接插入排序的思路:将要排序的元素保存,然后逐个和其前面的元素进行比较,如果前面的元素比其大,则将前面的元素后移一个。时间复杂度为n*nvoid insert_sort(int a[],int n){ int i,j; int temp; for(i=1;i<n;i++原创 2015-07-13 10:34:53 · 1195 阅读 · 0 评论 -
数据结构——树
1、定义:树是一种非线性结构,是一种一对多的数据结构。分析树的结构,我们用递归的方法,根结点下面又可以看做是子树。2、树的存储结构:我们一般用孩子兄弟法存储。也就是把一个结点的左边第一个孩子放在此结点的左边孩子,把此结点的右兄弟放在此结点的右边孩子。这样就产生了二叉树。二叉树和树可以相互对应。3、二叉树及其性质总之二叉树有很多特殊的性质,直接研究树会有些麻烦,所以我们通原创 2015-06-22 11:05:48 · 867 阅读 · 0 评论 -
二叉树的各类操作
********************************************************/ #include #include #include /********************************************************/ #define OK 1 #define ERROR 0原创 2015-09-09 17:41:27 · 377 阅读 · 0 评论 -
字符重复出现的次数
利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。给定一个string iniString为待压缩的串(长度小于等于3000),保证串内字符均由大小写英文字母组成,返回一个string,为所求的压缩后或未变化的串。测试样例"aabcccccaaa"原创 2015-09-08 16:24:58 · 1685 阅读 · 0 评论