算法
prim_learn
这个作者很懒,什么都没留下…
展开
-
快速排序算法的理解
本文主要是叙述一次快速排序算法中发生了哪些步骤,以加深对快速排序算法的理解。算法原理:通过一个参照数把整个数列分为大于它的部分和小于它的部分,再分别处理其两边的数列,直到结束。算法步骤:1.首先从需要排序的数列中选取一个参照点,如第一个数据,即key=a[low]。2.从数列最后一位开始与key进行比对(降序排列),如果小于key则比对下一个,即high--(为了把比key大的原创 2016-11-09 18:14:56 · 357 阅读 · 0 评论 -
堆排序以及归并排序的理解
一、堆排序 堆排序的核心是把数组看作一个完全二叉树,通过入堆操作把整个二叉树整理一遍,使所有的父节点都比其子节点大,如此根节点a(即数组的第一位)就是最大的数。把根节点a与二叉树最后一位z调换,称为a的出堆,即a已经排序完成。再处理被换上去的z,由于所有的父节点都比子节点大,只要把根节点下面子节点较大的那一位换到根节点,而根节点上的z就重复的进行处理沉下去,直到沉到底。重复出堆的操原创 2016-12-02 16:44:48 · 1321 阅读 · 0 评论 -
八皇后问题(减支思想、全列举)
八皇后问题描述:给出n*n的棋盘,在上面摆放n个棋子,每个棋子在棋盘上不能处于同一行列或对角线上。举个n=4的例子:如图就是n=4时符合情况的一种情况。解决思想:1.减支思想:通过分析减少不必要的暴力搜索降低算法地复杂度①、共有n*n个格子,需摆放n个棋子,就是说考虑不同行摆放的话会有n^n种情况;②、再考虑也不能同列的情况,会有n!种情况。2.信息浓缩:原创 2017-02-21 20:17:03 · 1102 阅读 · 0 评论