#include#define MAXSIZE 100 //假设文件长度,即待排序的记录数目typedef int KeyType;typedef struct{ KeyType key;}RcdType;typedef struct{ RcdType R[MAXSIZE+1];//...
分类:
编程语言 时间:
2014-11-22 10:29:13
阅读次数:
237
算法分析:
本题是拓扑排序的典型应用。
由于顶点数量不多,可以采用邻接矩阵来存储图信息,这样算法比较简单,只需要搜索n次,每次把序号最小的入度为0的顶点存储到拓扑序列中就行了。算法思路比较清晰,代码也比较简洁,但时间复杂度和空间复杂度都较高。
另一种方法是采用邻接表存储图信息。由于题目要求输出时编号小的队伍在前,所以在入栈时一定要保证先让序号最小的入度为0的顶点在栈顶,这样根据后进先出的特点,可以把序号最小的顶点存储到拓扑序列中。我采用折半插入排序的方法,把入度为0的顶点按递减序排序,然后对图进行深度优先...
分类:
其他好文 时间:
2014-11-19 16:05:59
阅读次数:
174
排序Time Limit: 1000MS Memory limit: 32678K题目描述 给你N(N#include #include #include #include #include using namespace std;//折半插入排序void B_insertsort(int a[]....
分类:
编程语言 时间:
2014-11-16 22:49:37
阅读次数:
592
http://www.cnblogs.com/archimedes/p/4014912.html
分类:
编程语言 时间:
2014-10-23 23:56:58
阅读次数:
234
插入排序算法主要有三种:直接插入排序、折半插入排序、希尔排序1、直接插入排序:/***直接插入排序,*1、从i-->length-1开始做插入扫描*2、初始化一个要插入的元素(1步骤中的)*3、从0-->i开始做插入排序操作*如果要插入的元素小于0-->i中的某一个元素,则做位置替换,*否者,执行第...
分类:
编程语言 时间:
2014-10-23 20:44:29
阅读次数:
255
设有一个序列a[0],a[1]...a[n];其中a[i-1]前是已经有序的,当插入时a[i]时,利用二分法搜索a[i]插入的位置
效率:O(N^2),对于初始基本有序的序列,效率上不如直接插入排序;对于随机无序的序列,效率比直接插入排序要高
/*
* 二分(折半)插入排序
* 设有一个序列a[0],a[1]...a[n];其中a[i-1]前是已经有序的,当插入时a[i]时,利用二分法搜索...
分类:
编程语言 时间:
2014-10-17 13:51:24
阅读次数:
186
1 # include 2 # include 3 using namespace std; 4 void BinaryInsertSort(int *_piArr,int len) 5 { 6 int i = 1,j = 0; 7 int low = 0; 8 int h...
分类:
编程语言 时间:
2014-09-17 23:19:12
阅读次数:
269
引言:
插入排序作为最简单易于理解的排序算法,基本实现比较简单。本文详细介绍直接插入排序,并给出实现,简单的介绍折半插入排序,并给出2-路插入排序和表插入排序两种插入排序,但并未给出具体实现。
一、直接插入排序
直接插入排序的基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表。
...
分类:
其他好文 时间:
2014-09-07 06:35:24
阅读次数:
256
引言:
插入排序作为最简单易于理解的排序算法,基本实现比较简单。本文详细介绍直接插入排序,并给出实现,简单的介绍折半插入排序,并给出2-路插入排序和表插入排序两种插入排序,但并未给出具体实现。
一、直接插入排序
直接插入排序的基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表。
算法描述:
步骤1、将待排序的一组记录中的第...
分类:
其他好文 时间:
2014-09-06 22:34:07
阅读次数:
257
最近整理了下以前的资料。有的算法没有实现,嘿嘿,以后再补吧!
/**
*排序算法的分类如下:
*1.插入排序(直接插入排序、折半插入排序、希尔排序);
*2.交换排序(冒泡泡排序、快速排序);
*3.选择排序(直接选择排序、堆排序);
*4.归并排序;
*
关于排序方法的选择:
*(1..
分类:
编程语言 时间:
2014-09-03 15:06:27
阅读次数:
262