
算法
is_Peng
编程就是将自己的思维赋予计算机
展开
-
算法--插入排序
插入排序 原理: 将n个元素的数列分为已有序和无序两个部分,如下所示: {{a1},{a2,a3,a4,…,an}} {{a1⑴,a2⑴},{a3⑴,a4⑴ …,an⑴}} … {{a1(n-1),a2(n-1) ,…},{an(n-1)}} 每次处理就是将无序数列的第一个元素与有序数列的元素从后往前逐个进行比较,找出插入位置,将该元素插入到有序数列的合适位置中。 假设在一个无序的...原创 2018-09-08 11:59:01 · 235 阅读 · 0 评论 -
算法--二分法查找
算法–二分法查找 当我们需要从一个有序数组中查找是否存在某个值时,最简单的方法便是遍历数组,将需要查找的值与数组中每一个值进行比较。但这种方法的效率是非常低的,如果是长度为n的数组的话,则需要比较n次,而如果采用二分法查找,比较次数会大幅降低。 二分法查找适用于数据量较大时,但是数据需要先排好顺序。主要思想是:(设查找的数组区间为array[low, high]) (1)确定该区间的中间位置...原创 2018-09-05 20:09:29 · 312 阅读 · 0 评论 -
算法--希尔排序
希尔排序 对于大规模乱序数组插入排序很慢,因为它只会交换相邻的元素,因此元素只能一点一点地从数组的一端移动到另一端。例如,如果主键最小的元素正好在数组的尽头,要将它挪到正确的位置就需要 N-1 次移动。希尔排序为了加快速度简单地改进了插入排序,交换不相邻的元素以对数组的局部进行排序,并最终用插入排序将局部有序的数组排序。 基本思想: 先取一个小于数组长度n的整数h1作为第一个增量,把数组的全...原创 2018-09-09 14:54:43 · 186 阅读 · 0 评论 -
算法--选择排序
选择排序 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。 基本思想: 长度为n的数组的直接选择排序可经过n-1趟直接选择排序得到有序结果: ①初始状态:无序区为R[0…n-1],有序区为空。 ②第1趟排序 在无序区R...原创 2018-09-06 20:52:43 · 177 阅读 · 0 评论 -
算法--归并排序
算法–归并排序 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。 例如: 设有数列{6,202,100,301,38,8,1} 初始状态:6,202,100,301,38,8,1 第一次归并后:{6,202},{...原创 2018-09-21 22:16:53 · 226 阅读 · 0 评论