#pragmaonce
#include<assert.h>
voidInsertSort(int*array,size_tn)
{
assert(array);
for(size_ti=0;i<n-1;++i)
{
intend=i;
inttmp=array[end+1];
while((end>=0)&&(array[end]<tmp))
{
array[end+1]=array[end];
--end;
}
..
分类:
编程语言 时间:
2016-06-07 16:33:53
阅读次数:
351
周 数 专 业 学 习 时 间 专 业 学 习 目 标 新 增 代 码 量 博 客 发 表 量 人 文 学 习 方 面 知 识 总 结 数据结构: 排序的基本概念 和分类 网络计算技术: 网络安全的维护 HTML5: 继续学习脚本 在看《生活中的心理学》 之前,我一直对心理学这 个概念似懂非懂,对它 ...
分类:
其他好文 时间:
2016-06-04 16:13:17
阅读次数:
141
共16章,共四部分:基础知识,数据结构,排序和搜索。 所有的实现都是使用C语言缩写。任何语言都有优缺点,选用C语言是因为它使用的广泛。 第一章: 导论 第二章: 算法分析原理 第三章: 基本数据结构 第四章: 抽象数据 第五章: 递归和数 第六章: 基本排序方法 第七章: 快速排序 第八章: 归并和 ...
分类:
编程语言 时间:
2016-06-03 01:00:39
阅读次数:
203
对任意n个关键字排序的比较次数至少为log2(n!).
1、对任意的7个关键字进行基于比较的排序,至少要进行13次关键字之间的两两比较。
一、直接插入排序
基本思想每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置,直到全部插入排序完为止。
代码实现
class SortTest
{
public static void main(String[] args...
分类:
编程语言 时间:
2016-05-12 23:24:26
阅读次数:
273
希尔排序又叫做递减增量排序。在这种排序中,我们将设置一个步长(增量),我们在比较数据时根据增量去进行比较,这样我们的数据会一次性前进很多步,所以希尔排序的效率要比直接插入排序的效率高。 希尔排序的思想就是我们设置一个步长,然后我们根据这个步长进行划分子序列,得到子序列1,子序列2....,然后我们对 ...
分类:
编程语言 时间:
2016-05-03 23:30:54
阅读次数:
137
今天继续介绍一种排序算法:选择排序。 选择排序的基本思想就是从待排序列中选择出最小的,然后将被选出元素和序列的第一个元素互换位置(当前默认是升序排列),则互换完成后第一个元素就是整个序列的最小的元素,则一次选择排序结束。然后我们从剩下的子序列中选择出最小的,然后将该被选出来的元素和该子序列的第一个元 ...
分类:
编程语言 时间:
2016-04-15 00:28:15
阅读次数:
196
排序算法包括很多种,其中快速排序是其中一种比较快的排序算法,今天就来介绍一下: 快速排序的基本实现思想就是将当前待排序列分成两个部分、一个值。一个值:就是选定出一个值作为被比较的元素。两个部分:所有比该被选定元素大的部分都去该元素的右边,所有比被选定元素小的部分都去该元素的左边。这样我们就确定了该元 ...
分类:
编程语言 时间:
2016-04-13 00:09:18
阅读次数:
150
背景: 原来虽然有学过数据结构,排序一些,但是没有好好学,现在复习一下。 正题: 1、直接插入排序 直接贴一下百科:每次取出无序数组中的一个数,把他和有序数组中的数比较,插到适当位置,直到无序表为空,有序表满。 原理很简单,就我而言,首先想到的是新建一个new_list数组,充当有序表,然后一步一步 ...
分类:
编程语言 时间:
2016-03-30 22:14:59
阅读次数:
172
排序(Sorting)就是将一组对象依照规定的次序又一次排列的过程,排序往往是为检索而服务的。它是数据处理中一种非常重要也非经常常使用的运算。比如我们日常学习中的查字典或者书籍的文件夹。这些都事先为我们排好序,因此大大减少了我们的检索时间,提高工作效率。 排序可分为两大类: 内部排序(Interna
分类:
编程语言 时间:
2016-02-03 10:38:52
阅读次数:
234