1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。 要点:设立哨兵,作为临时存储和判断数 ...
分类:
编程语言 时间:
2016-09-26 14:34:35
阅读次数:
145
逻辑分析 二分法查找,又叫折半查找法。 前提:待查序列必须为线性有序表。 步骤: 每次取待查序列的中间值与目标值对比,结果如下: 如果中间值小于目标值,则说明目标值在大的半区,继续取大半区的中间值与目标值对比。 如果中间值大于目标值,则说明目标值在小的半区,继续取小半区的中间值与目标值对比。 时间复 ...
分类:
其他好文 时间:
2016-09-24 16:16:30
阅读次数:
151
基本思想: 将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。 要点:设立哨兵,作为临时存储和判断数组边界之用。 如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等 ...
分类:
编程语言 时间:
2016-09-17 22:02:54
阅读次数:
102
介绍 归并排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的,然后再把有序子序列合并为整体有序序列。 过程 第一步:申请空间,使之大小为两个已经排序序列之和,该空间用来存放合并后的序列; 第二步:设定两个指针,最初位置为两个已经排序序列的起始位 ...
分类:
编程语言 时间:
2016-09-06 23:07:32
阅读次数:
187
package studyJava; import java.util.Arrays; public class MergeSort { /** * 归并排序 * 简介:将两个(或两个以上)有序表合并成一个新的有序表 即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有 ...
分类:
编程语言 时间:
2016-09-03 12:10:19
阅读次数:
154
这是一个在OS X Linux下可以直接双击运行的程序 以utf-8方式读取代码 %d %.2d %2d %02d的区别。 list是一个可变有序表 list里面的元素的数据类型也可以不同,比如: >>> L = ['Apple', 123, True] tuple列表没有append、pop、in ...
分类:
其他好文 时间:
2016-09-02 11:24:20
阅读次数:
156
1.直接插入排序 1)时间复杂度:T(n)=O(n^2); 2)空间复杂度:S(n)=O(1); 3)简介:直接插入排序是一种最基本的插入排序方法,直接插入排序(Straight Insertion Sorting)的基本思想是把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个 ...
分类:
编程语言 时间:
2016-08-27 14:12:21
阅读次数:
154
1、直接插入排序 在一个有序表中插入一个元素形成一个新的表长加1的有序表。 #include <iostream>using namespace std;//直接插入排序void insertSort(int *arr,int length){ for (int i = 1; i <= length ...
分类:
编程语言 时间:
2016-08-18 23:15:07
阅读次数:
164
1.归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法
(DivideandConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;
即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。
..
分类:
编程语言 时间:
2016-08-02 17:22:10
阅读次数:
116
一、算法分析 原理:将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 归并排序的时间复杂度为o(n*log2n) 二、代码示例 ...
分类:
编程语言 时间:
2016-07-22 16:09:20
阅读次数:
179