算法
KyleWlk
这个作者很懒,什么都没留下…
展开
-
单链表反转(非递归)
单链表的反转有很多种犯法,这里最主要讲一下非递归方法中的移动指针的方法。对于这种方法可能在移动指针的时候很容易出错,所以我想了一种的特殊的思考方法。在创建链表的时候,有头插法和尾插法两种方法,而头插法创建的链表其数据的顺序刚好与输入的顺序相反,因此可以利用这个特点反转单链表。我们可以从新“创建”单链表,数据来源于原链表。代码(C++):#includeusing namespac原创 2013-02-26 21:40:43 · 422 阅读 · 0 评论 -
蛮力法 解决全排列问题
问题:用蛮力法生成{1,2...,n}的所有n!个排列。例:开始 1插入 2 12 21插入3 123 132 312 213 231 321伪代码:1.生成初始排列{1};2.for(i=2;i<=n;i++)for(j=1;j<=(i-1)!;j++)for(k=i;k>=1;k--)将i插入到第j个...原创 2012-05-24 08:49:34 · 6256 阅读 · 0 评论 -
集合子集问题:
集合子集问题:给的一个集合按元素个数列出所有列出所有集合子集,如:{1,2,3}0个元素:{}1个元素:{1},{2},{3}2个元素:{1,2},{1,3},{2,3}3个元素:{1,2,3}输出:{},{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}方法:采用一个二进制数列表示解,如:[000]代表{},[100]代表{1}算法原创 2012-05-25 12:11:11 · 481 阅读 · 0 评论