动态数组: int[] arr = new int[5]; ->声明了一个能放5个int类型的数组 arr[0] = 1; arr[1] = 2; arr[0] = 41; arr[1] = 8; arr[0] = 11; 动态数组:在初始化的时候元素空间分配 和 赋值,分别执行 静态数组: int ...
分类:
编程语言 时间:
2020-06-13 09:14:08
阅读次数:
60
排序 1.定义: 所谓排序,即是整理文件中的内容,使其按照关键字递增或递减的顺序进行排列。 输入:n个记录,n1,n2……,其对应1的关键字为k1,k2…… 输出:n(i1),n(i2)……,使得k(i1)<=k(i2)…… (形象点讲就是排排坐,调座位,高在前低在后;或者低在前高在后) 2.排序算 ...
分类:
编程语言 时间:
2020-03-29 21:05:35
阅读次数:
79
输入若已经是排好序的,下列排序算法最快的是() A. 插入排序 B. Shell排序 C. 合并排序 D. 快速排序 解析:若已排好序,使用插入排序的时候只要两两比较一次即可,复杂度为O(n)。 答案:A 拓扑排序是按 AOE 网中每个结点事件的最早发生时间对结点进行排序,这样的说法正确吗? A. ...
分类:
编程语言 时间:
2020-02-27 00:56:42
阅读次数:
80
Shell排序算法的基础是插入排序算法,所以在开始讲Shell排序算法之前,先讲讲插入排序算法。 我们先来看一个简单的小问题,给出一个已经排序好的数组arr以及另外一个数字n,如何将n放入到数组arr中,使得放入n后arr内的所有数字依然是有序的? int arr[10] = {3,4,7,8,10 ...
分类:
编程语言 时间:
2020-02-03 12:01:33
阅读次数:
82
Shell排序 Shell排序是大量数据需要排序时,更为高效的插入排序。它的算法思想基于插入排序的算法思想 流程: (1)将n个元素数组分成n/2个数字序列,第一个数据和第n/2个数据为一对,等等,以此类推 (2)一次循环使每一个数对排列好顺序 (3)变成n/4个数对,再次排序。 (4)不断重复上述 ...
分类:
编程语言 时间:
2019-11-28 13:24:53
阅读次数:
92
1 template <class Item> 2 void shellsort(Item a[], int l, int r) 3 { int h; 4 for (h = l; h <= (r-l)/9; h = 3*h+1) ; 5 for ( ; h > 0; h /= 3) 6 for (i ...
分类:
编程语言 时间:
2019-11-10 17:13:25
阅读次数:
67
个人觉得移位法就是借希尔排序进行分组,插入排序进行排序 注释是上一篇的交换法. 而且这种排序的真的很快 ...
分类:
编程语言 时间:
2019-08-07 09:37:43
阅读次数:
153
可以先看注释掉的分析,最后在看三层for循环 待完善... ...
分类:
编程语言 时间:
2019-08-04 19:34:59
阅读次数:
106
shell(希尔)排序是插入排序的一种,是直接插入排序算法的一种更高效的改进版本, 其思想是使数组中任意间隔h的元素都是有序的,其目的是为了减少元素的移动距离. array_0 = [12, 23, 54, 32, 11, 76, 5, 73,2, 89, 76,554,65,234, 42]she ...
分类:
编程语言 时间:
2019-05-10 20:38:32
阅读次数:
218
#include<iostream> #include<string> #define ml 10 using namespace std; typedef struct{//定义Data数据项 std::string name; long num; }Data; struct Link{//定义结 ...
分类:
编程语言 时间:
2019-05-05 23:36:11
阅读次数:
171