【发布时间】:2012-07-03 18:48:48
【问题描述】:
我有一个链表,我想实现一个功能:
Random_Shuffle_List (struct node **Headptr) - 输出一个列表,使得每个节点都从其原始位置随机移动。
请帮助我用一种有效的算法来实现这一点。
【问题讨论】:
-
试试programmers.stackexchange.com,除非你对你尝试过的实现有真正的疑问。
-
我看到了几种解决问题的方法,但是我想知道是否有必要使用标准链表?您不想要的是移动数据,但只更改引用指针/索引。想到的下一个问题是:是否有必要对列表进行更改,或者当您需要访问列表时,您不能随机访问吗? (如果您想多次访问它可能不是首选选项)
-
尝试归并排序;使用随机函数进行比较。确保所有节点都具有相同的先发蜂机会。 (或第二个,...)
标签: c algorithm list data-structures