首页 > 代码库 > 算法基础

算法基础

一:插入排序

插入排序:对于少量的元素排序,它是个有效的算法。时间复杂度:N^2

插入排序好比一手扑克牌。每次从桌上拿走一张牌将它按顺序插入正确的位置。为了找到这张牌的正确位置,我们需要从右到左依次比较(靠左最小)。

伪代码如下:

 

二:归并排序

分治法:分解、解决、合并

1:分解元问题为若干子问题,这些子问题是元问题的规模较小的实列。

2:解决这些子问题,递归地求解各子问题。

3:合并这些子问题的解就成元问题的解。

 

 

归并排序完全遵循分治模式。关键是合并。

假设(A,p,q,r) 其中A是一个数组,p、q和r是数组下标,满足p<=q<r。

假设子数组A[p······q]和 A[q+1,·····r]都已经排好序

只要合并两个子数组就可以替代A[p····r]。

 

 

时间复杂度:nlgn

算法基础