1.当待排序记录已经从小到大排序或者已经从大到小排序时,快速排序的执行时间最省()
A. 对
B. 错
答案:B
根据快排的特点可知,快速排序基本有序情况下效率最低,在基本无序情况下效率最高。
2.以下排序中时间复杂度最差的是
A. 归并排序
B. 选择排序
C. 希尔排序
D. 堆排序
答案:B
...
分类:
编程语言 时间:
2015-06-04 11:47:23
阅读次数:
232
算法分析:
希尔排序是一种按照增量排序的方法。其中增量值是小于n的正整数。
shell排序的基本思想[1]是:
先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插人排序;然后,取第二个增量d2
可以根据下图形象理解:
(1)初始增量为3,该数组分为...
分类:
编程语言 时间:
2015-06-04 10:00:45
阅读次数:
193
原文:http://wuchong.me/blog/2014/02/09/algorithm-sort-summary/经典排序算法在面试中占有很大的比重,也是基础,为了未雨绸缪,在寒假里整理并用Python实现了七大经典排序算法,包括冒泡排序,插入排序,选择排序,希尔排序,归并排序,快速排序,堆排...
分类:
编程语言 时间:
2015-06-03 15:37:46
阅读次数:
239
1.插入排序=====================================================算法思想简单描述:在要排序的一组数中,假设前面(n-1)[n>=2]个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。直接插入排序是稳定..
分类:
编程语言 时间:
2015-06-03 13:54:25
阅读次数:
245
编程实现希尔排序算法,按照非递减排序,测试数据为整数。
Description
第一行是待排序数据元素的个数n;
第二行是待排序的数据元素。
Input
一趟希尔排序后的结果。
Output
1
2
3
10
50 36 41 19 23 4 20 18 12 22
...
分类:
编程语言 时间:
2015-06-02 22:01:52
阅读次数:
161
希尔排序又称“缩小增量排序”。它的基本思想如下:先将整个待排记录序列分成若干个子序列分别进行直接插入排序,等到整个序列中的记录“基本有序”了,再对全体记录进行一次直接插入排序。算法实现:我们这里简单处理增量序列:增量序列d={n/2,n/4,n/8....1}n为要排序数的个数。即:先将要排序的一组...
分类:
编程语言 时间:
2015-06-02 11:08:01
阅读次数:
214
希尔排序// 希尔排序.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include
#include
void main()
{
int data[11] = {0,75,23,98,44,57,12,29,64,38,82};
int i, j, k, incr, temp;
printf(...
分类:
编程语言 时间:
2015-05-30 22:41:56
阅读次数:
213
1.插入排序—直接插入排序(Straight Insertion Sort)基本思想:将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。要点:设立哨兵,作为临时存储和判断数组边界...
分类:
编程语言 时间:
2015-05-29 06:06:08
阅读次数:
209
希尔排序也是插入排序的一种,但是它效率高于直接插入排序。基本思想是:首先取一个小于n的整数d1作为第一个增量,把文件的全部记录分组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2 2 #include 3 4 int n; 5 6 /* 7 * ...
分类:
编程语言 时间:
2015-05-27 22:35:02
阅读次数:
154
直接插入排序
//直接插入排序
public int[] insertSort(int[] a) {
for (int i = 1; i = 0 && a[j] > a[i]; j--) {
a[j + 1...
分类:
编程语言 时间:
2015-05-27 17:29:18
阅读次数:
252