
数据结构与算法
爱吃青菜的小鱼
这个作者很懒,什么都没留下…
展开
-
数据结构与算法(1、数组和链表)
1、数组和链表 对于数组和链表而言,数组的每一个元素都有其对应的下标,例如int array[]={1,2,3};//array[1]=2;/*数组可以根据角标去查找元素,所以查找效率比较高,但是数组的增删非常不方便,因为需要移动大量的元素去实现增删*/链表:链表是弥补了数组的不足同时也有自己的缺点 链表的增删比较容易,但是失去了角标只能通过头结点一个一个去遍历//链表的创建//结构体原创 2015-06-03 23:08:58 · 545 阅读 · 0 评论 -
数据结构与算法(2、从Reverse到大O表示法)
接上面的问题,如何从实现一个数组的翻转,其实很简单 1、定义一个头,一个尾 2、判断条件:头是否大于尾 3、交换元素值 4、头,尾更向中间靠拢 代码如下://关键代码public static void reverseArray(int arr[]){int left=0;int right=arr.length-1;while(left<right){ int temp=a原创 2015-06-03 23:27:51 · 876 阅读 · 0 评论 -
数据结构与算法(3 Reverse链表)
首先个人理解数组和链表的异同点: 1:数组是一个有固定容量的容器,在内存中是一个一个排列着,有自己的固定长度,虽然可以生成动态数组,但是不建议,因为消耗内存。所以如果想从数组中插入或者删除一个元素的时候,就显得资源消耗比较大,因为每插入一个,数组就要向后移动插入位置之后的每一个位置。所以数组在插入删除中效率是比较低的,然后数组可以通过index索引,直接查到数组的对应索引的元素。 2:链表跟数组原创 2015-07-20 13:27:31 · 1453 阅读 · 0 评论 -
数据结构与算法(4、约瑟夫环问题到循环链表)
首先先解释约瑟夫环问题,这个问题,背景其实挺残酷的,来自于一场自杀游戏,举个现实的例子,如果你有4个朋友,但是只能给一个人带饭,那么做这样的游戏,4个人围成一个环,你说从1开始数,数到2,就淘汰掉2,剩下的继续围成一个环,在继续这个游戏,直到剩下一个为止。 表达能力有限,直接百度百科! 约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编原创 2015-07-21 21:52:00 · 1065 阅读 · 0 评论 -
数据结构与算法(5、链表的拼接)
今天复习一下链表的拼接,从2个链表的拼接开始 例如有一个链表A,一个链表B,A和B已经排序好,现在的需求是将链表A和链表B的元素按照排好序,然后形成新的链表C。 首先规划一下思路: 1、判断是否是空链表,如果是空链表,就返回另外一个链表 (第一个function isEmpty()判断是否是空链表) 2、如果不是空链表,那么让A和B的第一个元素进行比较,如果A的第一个元素(取链原创 2015-07-22 22:12:31 · 1336 阅读 · 0 评论