算法跟踪实践

来源:互联网 发布:网络直播涉黄40都是谁 编辑:程序博客网 时间:2024/05/01 10:25

http://blog.csdn.net/feixiaoxing/article/details/6993718

 

 

【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】


    自10月初编写算法系列的博客以来,陆陆续续以来写了几十篇。按照计划,还有三个部分的内容没有介绍,主要是(Dijkstra算法、二叉平衡树、红黑树)。这部分会在后面的博客补充完整。这里主要是做一个总结,有兴趣的朋友可以好好看看,欢迎大家提出宝贵意见。

冒泡:其实就是从第一个数字开始,每相邻的两个数字进行比较,把小的放到前边,然后循环N-1次。然后从第二个数字继续;以此类推。直到排序完成。

    (1) 排序算法

    快速排序     

    合并排序

    堆排序

    选择排序

规律:其实就是以第一个数为基准,,把它的“值”和“索引”保存到临时变量value和index里边,第一个数字后边的所有的数字循环和临时变量比较,如果他们比临时变量小。我们就知道要把小的值放到第一位了。然后第一位数字和最小的一位数字互相交换位置。然后找第二位上的数字,把它赋给临时变量,继续上面操作。以此类推。碰到它自己最小,则跳过。继续下一轮循环。

    基数排序

    冒泡排序

    插入排序

首先第一步,我们将数组的第一个数字,我们认为它默认已经排序过了。然后从第二个数字开始,我们把第二个数字的值和索引赋给临时变量,value和index;然后从后往前循环,把大的数字往后依次移动。当遇到大于它的数时,结束本循环,然后从第三个数字开始,将第三个数字赋给临时变量;继续上面的操作;知道排序完成。

    希尔排序

    链表排序


    (2) 数据结构

    线性队列

    线性堆栈

    单向链表

    双向链表

    循环单向链表

    排序二叉树(插入,删除上、中、下、保存和加载)

    哈希表

    哈希二叉树

    

    (3)图

    图结构

    图创建

    图的添加、删除

    图的保存

    prim算法(上、中、下)

    哈夫曼树(上、下)    

    克鲁斯卡尔算法(上、中、下)

    

    (4)常用算法

    查找

    内存分配

    字符串查找(上、中、下)

    通用数据结构

    通用算法

    循环和递归

    递归和堆栈

    内存中的数据

    A*算法

    可变参数

    函数堆栈

    递归寻路

    广度遍历、深度遍历

    排序二叉树线索化


    (5)趣味算法题目

    链表逆转

    大数计算

    n!末位0个数计算

    洗牌算法

    “数星星”

    八皇后

    数据选择

    单词统计

    爬楼梯

    回数

    链表重合

    寻找丢失的数

    最大公约数、最小公倍数

    挑选最大的n个数