算法导论
SJCHEN1221
这个作者很懒,什么都没留下…
展开
-
算法导论之插入排序
比如我们对下面的进行排序,排序过程如下5 2 4 6 1 3 2 5 4 6 1 3 2 4 5 6 1 3 --------------------------------------------每次进行比较2位,然后插到合适的位置1 2 ...原创 2019-02-01 11:17:53 · 221 阅读 · 0 评论 -
算法导论之归并排序
归并排序的思想就是分治法;分治法:为了解决一个给定的问题,算法一次或多次递归地调用其自身以解决紧密相关的若干子问题。分治模式在每层递归时都有三个步骤:一,分解原问题为若干子问题。二,解决这些子问题,递归求解各子问题。三,合并这些子问题的解成原问题的解。了解了分治法之后,我们再来看下归并排序:1,分解:分解待排序的n个元素的序列各具n/2个元素的两个子序列。2,解决:...原创 2019-02-01 11:57:49 · 364 阅读 · 0 评论 -
算法导论之二分查找
二分查找的前提是要进行查找的序列必须是有序的,这里我们以升序为例。1 2 3 4 5 6 7 8 9 start = 0, end = 8, mid = (0 + 8) / 2;比如我们查找val = 2;首先我们比较A[mid]和val, 如果val大,那么我们递归右边,否则我们递归左边。#include <...原创 2019-02-01 15:20:37 · 356 阅读 · 0 评论 -
算法导论之最大子数组问题
例如我们在求解下面的最大子数组时13 -3 -25 20 -3 -16 -23 18 20 -7 12 -5 -22 15 -4 7 最简单的做法就是暴力求解,但是时间复杂度为O(n^2);//// main.cpp// 算法导论//// Created by SJCH...原创 2019-02-02 10:11:18 · 352 阅读 · 0 评论