
经典算法实现系列
一骑走烟尘
这个作者很懒,什么都没留下…
展开
-
构造二叉排序树与前序遍历、中序遍历、后序遍历的递归和非递归实现
文章目录前序遍历、中序遍历、后序遍历的递归和非递归实现C/C++实现前序遍历、中序遍历、后序遍历的递归和非递归实现前序遍历顺序:根->左->右。中序遍历顺序:左->根->右。后序遍历顺序:左->右->根。前序和中序遍历都是先一路向下遍历节点至最左下角的节点,将这一路上的节点入栈。前序遍历入栈时就要打印节点的值;然后出栈一个节点,中序遍历此时才打印该节点...原创 2019-06-28 22:13:14 · 663 阅读 · 0 评论 -
尾插法创建链表、打印链表、合并两个有序链表
文章目录C/C++代码注意:链表默认没有头节点,第一个节点就有值。C/C++代码# include <iostream># include <vector>using namespace std;struct listnode { int val; listnode *next; listnode(int x) : val(x), next(nul...原创 2019-06-28 14:58:20 · 456 阅读 · 0 评论 -
堆排序
文章目录基本思想C/C++实现Python3实现基本思想堆是具有以下性质的完全二叉树:每个结点的值都大于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于其左右孩子结点的值,称为小顶堆。两者对左右孩子的大小关系不做任何要求。堆排序的基本思想是将无序序列构建成一个堆,根据升序降序需求选择大顶堆或小顶堆;将堆顶元素与末尾元素交换,将最大元素"沉"到数组末端;重新调整结构,使其满足堆定义,然后...原创 2019-03-24 16:35:41 · 2733 阅读 · 1 评论 -
归并排序
文章目录基本思想C/C++实现Python3实现基本思想申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列;设定两个指针,最初位置分别为两个已经排序序列的起始位置;比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置;重复上一步步骤直到某一指针到达序列尾;将另一序列剩下的所有元素直接复制到合并序列尾。C/C++实现#include &...原创 2019-03-24 14:03:45 · 133 阅读 · 0 评论 -
快速排序
文章目录基本思想基本思想原创 2019-03-24 12:23:24 · 179 阅读 · 0 评论 -
斐波那契数列:从分治法到动态规划
文章目录原创 2019-03-24 22:37:22 · 3535 阅读 · 0 评论 -
选择排序
文章目录基本思想C/C++实现Python3实现基本思想在长度为N的无序数组中,第一次遍历n-1个数,找到最小的数值与第一个元素交换;第二次遍历n-2个数,找到最小的数值与第二个元素交换;依此类推,第n-1次遍历,找到最小的数值与第n-1个元素交换,排序完成。C/C++实现#include <cstdio>#include <vector>using name...原创 2019-03-16 13:11:33 · 158 阅读 · 0 评论 -
插入排序
文章目录基本思想C/C++实现Python3实现基本思想默认数组的首个元素是有序的,这部分看成部分有序的子数组,后面看成无序的子数组。从无序子数组后面开始的元素与有序子数组的倒数第一个比较,如果元素比有序子数组中的元素大,则交换。然后指针往前移动一位,再比较有序子数组的前两个元素,依次类推,直到到有序子数组的首个元素为止,这一趟排序完成。然后对无序子数组的每一个元素都进行上述过程。C/C++...原创 2019-03-16 10:36:55 · 148 阅读 · 0 评论 -
冒泡排序
文章目录基本思想C/C++实现Python实现基本思想在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往后沉,较小的往前冒。即每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。如果要从大到小排序就反过来。优化一:如果没有到第arr.length-1次数组已经有序,冒泡算法仍然会继续进行后面所有轮的比较,直到arr.l...原创 2019-03-14 15:27:53 · 197 阅读 · 0 评论 -
用Python自己写一个简单的矩阵运算类(只实现矩阵加法和乘法)
文章目录介绍Python代码实现介绍这是一道面试时的编程题。我们要在Python中实现一个简单的二维矩阵运算类,该类可以将双层列表初始化为二维矩阵,并可以进行矩阵加法和矩阵乘法。我们使用assert断言来判断初始化时输入的是否是列表,在进行矩阵加法和矩阵乘法时也使用断言来判断两个矩阵的维度是否满足要求。需要注意的是,为了使矩阵运算更具有通用性,矩阵加法和乘法的结果也应初始化为我们写的矩阵类,...原创 2019-07-22 19:01:19 · 7232 阅读 · 0 评论