自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 排序之基于单链表插入排序

插入排序的具体方法在上文已经介绍过,此文不再赘述。 对于数组,可以使用索引来轻易操作上下元素,但是单链表则只能通过指向下一节点的元素来操作。 因此,需要两个指针firstOutOfOrderPointer(指向第一个无序元素的节点)和lastInOrderPointer(指向最后一个有序元素的节点)。 首先,比较firstOutOfOrderPointer->data和第一个节点的data。

2016-05-22 22:47:18 528

原创 排序之基于数组插入排序

有n个元素,其中前m个已经有序,后n-m个是无序状态,使用选择排序毫无意义,于是使用一种新的方法插入排序。 设有一个数组List如下: List={10,18,25,30,23,17,45,35}; List[4]应该插入List[1]和List[2]之间,先把List[4]->temp,List[2]和List[3]后移,再temp->List[2]。 我们在排序过程中,把整个数组分

2016-05-21 23:24:36 223

原创 排序之选择排序

对n个元素排序,第一次找出n个中最小值排在第一个,第二次找出(n-1)个中最小值排在第二个,如此循环。 第一次比较n-1次,第二次比较n-2次。。。所以是O(n^2)void selectionSort() {     int minIndex,nowIndex;     for(minIndex=0;minIndex<numberOfItems;minIndex++)     {  

2016-05-21 23:02:44 184

原创 Leetcode战记 day3 移零问题

问题:给定一个数组,把其中所有的零元素移动数组的末尾,其它非零元素的位置关系不变 想法:对于这个问题,是一个数组操作,对于数组操作,c++中提供了fill和remove函数可以使用,很方便的解决这个问题            fill(start,end,value):表示从start到end位置的元素全部置为元素value,无返回值            remove(start,

2015-12-31 11:40:19 210

原创 Leetcode战记 day3 删除链表中的点

问题:一个链表,删除其制定的点 public: void deleteNode(ListNode* node) { auto next=node->next; *node=*next; delete next; }

2015-12-31 11:39:06 169

原创 Leetcode战记 day2 求二叉树的深度

问题:给定一个二叉树求出其深度 思路:使用第一个栈存储二叉树的点,然后使用另一个栈来存储深度

2015-12-06 13:53:24 248

原创 Leetcode战记 day1 单数字问题

问题:一个数组中全为正整数,有一个数字只出现了一次,其它均出现了两次,找出这个数字 思路:使用异或运算符      1. a ⊕ a = 0                                           2. a ⊕ 0 = a                                           3. a ⊕ b = b ⊕ a      

2015-12-04 19:09:42 168

原创 Leetcode战记day1 数根问题

问题:给一个非负整数,如num=68,6+8=14,1+4=5;即求出该整数各位数字相加之和,若该和大于9继续加,直到其为一个个位数 num=a[n]a[n-1]...a[2]a[1]a[0],num=10^n*a[n]+10^(n-1)*a[n-1]+……+10^1*a[1]+10^0*a[0]1%9=1;10%9=1;100%9=1……由此规律可知num%9=a[n]+a[n-1

2015-12-04 11:07:34 213

原创 Leetcode战记day1 尼姆游戏

问题:一共n个棋子,两个人取棋子,每次取1到3个,谁取到最后一个谁赢 当n=1、2、3,第一个人获胜n=4,第一个人必输,第二个人获胜n=5、6、7,第一个人可以拿走1、2、3个棋子使n=4,第二个人必输n=8,不管第一个人怎么拿,第二个人均可以移动相应棋子是第一个人面对n=4的必输局n=9、10、11,第一人可以让第二人面对n=8的必输局所以当n=4K时,第一人输,其他时候第一人赢

2015-12-04 10:39:13 530

原创 贪心法实现无向图的划分 代码

#include #include #include #include #include #include /*2013303405 14011306 陈铭丰 使用贪心算法求解无向图顶点划分问题*/ using namespace std; /*图的顶点定义*/ typedef struct Node //定义节点结构体 { int index;//节点的编号 int

2015-11-20 17:37:29 373

原创 贪心法实现无向图的划分

给定一个无向图,使用贪心算法划分其节点,希望集合数目越来越少。矛盾:贪心算法总是局部最优,对于整个问题的求解不一定是最优的。想法:使用韦尔奇鲍威尔算法来求解该问题。鲍威尔算法:把图的节点按度的降序排列,第一种颜色对第一点着色,按照着色顺序把非临阶点着色;然后是第二种。。。。。。直到全部上色。对于节点集合按照度的降序排列,使用sort方法。 sort(begin,end)表示比较从begin到end

2015-11-20 17:34:36 1261

原创 递归生成二叉树 day2

为了方便 决定把节点类 二叉树类写在一个cpp文件里面节点类struct Node { Node* pLeft; Node* pRight; char data; }二叉树的重构方法Node* Rebuild(string preOrder,string midOrder) { if(preOrder.size()==0) return NULL; if(midOrde

2015-11-20 17:08:19 188

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除