
基础算法
Anddy_JC
这个作者很懒,什么都没留下…
展开
-
回溯法—八皇后问题(N皇后)
八皇后问题八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。解题思路: 1.在8*8的棋盘上进行逐行试探,每一行进行逐格试探,判断该格是否能放一个皇后,即判断在该格对应的列,左斜线,右斜线上是否有皇后,若有则放,原创 2017-09-27 14:19:28 · 308 阅读 · 0 评论 -
回溯法——迷宫问题
回溯法——迷宫问题1.首先我们需要自定义一个迷宫; 左上角为入口,右下角为出口,0为路,-1为墙 用二维数组存储 2.我们在走迷宫之前,首先要确立一个走的顺序,即贪心准则,我们首先试探的方向应该是下,然后是右,上,左; 为了确保每一个格子都有上下左右,我们需要给我们的迷宫加上一圈墙8*8,变成10*10; 3.当我们在一个格子上时,通过遍历格子的4个方向,来确定能否行走,若能走,走,不原创 2017-10-01 18:25:14 · 1413 阅读 · 2 评论 -
堆排序
堆排序: 1.以数组下标为一颗二叉树的节点编号 2.通过比较交换,把这颗二叉树变成大根堆或小根堆 3将齐根节点首元素与数组最后一个元素交换,缩短数组长度,完成排序。 #include #define N 8 using namespace std; void M_A_Heap(int *a,int end){//制造一个大根堆 int cnt,t,pa; while(1){原创 2018-01-25 23:15:43 · 138 阅读 · 0 评论 -
五分钟掌握——快速排序
快速排序: 快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 先来一张图,说明一下大致过程 通常我们进行快排原创 2018-02-01 20:24:42 · 326 阅读 · 0 评论