文章分类 -  算法

摘要:约瑟夫问题 约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的顺序是:5,4,6,2,3,1。 故事插曲 据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephu 阅读全文
posted @ 2018-12-15 18:48 随时静听 阅读(201) 评论(0) 推荐(0)
摘要:选择排序 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。 选择排序是不稳 阅读全文
posted @ 2018-12-15 12:15 随时静听 阅读(104) 评论(0) 推荐(0)
摘要:直接插入排序 直接插入排序(Straight Insertion Sort)是一种最简单的排序方法,其基本操作是将一条记录插入到已排好的有序表中,从而得到一个新的、记录数量增1的有序表。 如何简单快速理解什么是直接插入排序 直接插入的排序的思想是: 一个数当作是有序的,排序的是一组数据,但是第一个数 阅读全文
posted @ 2018-12-15 11:58 随时静听 阅读(102) 评论(0) 推荐(0)
摘要:冒泡排序 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。这个算法的名字 阅读全文
posted @ 2018-12-14 20:46 随时静听 阅读(169) 评论(0) 推荐(0)
摘要:鸡尾酒排序 鸡尾酒排序算法 双向冒泡排序算法,搅拌排序或者涟漪排序 冒泡排序每一轮的循环都能冒泡出最小的或者最大值 双向冒泡,在正向冒泡过程种排序出最大的时候记录下最后一次冒泡的位置up 在上次冒泡的基础从up向前排序找出最小的向前排,并记录最后一次交换的位置low 重复以上两个步骤,直到最后(up 阅读全文
posted @ 2018-12-13 15:53 随时静听 阅读(191) 评论(0) 推荐(0)
摘要:常用的算法有:回溯法、递归法、递推法、迭代法以及穷举搜索算法。 八皇后问题: 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有 阅读全文
posted @ 2018-12-13 14:55 随时静听 阅读(444) 评论(0) 推荐(0)