1、实现思想 2、实现代码 1 #include <stdio.h> 2 void bulubulu_sort(int *array, int len) 3 { 4 int temp; 5 for (int i = 0; i < len - 1; i++) 6 { 7 for (int j = 0; ...
分类:
编程语言 时间:
2020-07-29 00:47:19
阅读次数:
100
一 排序算法的分类 二 时间复杂度和空间复杂度 1.时间复杂度 1.1 时间复杂度的计算方式 1).用常数1代替运行时间中所有的加法常数 2)修改后的运行次数函数中,只保留最高阶项 3)去除最高阶项的系数 1.2 常用算法的时间复杂度 这个需要牢记 2.空间复杂度 空间复杂度是一个算法在运行时临时占 ...
分类:
编程语言 时间:
2020-07-26 01:05:36
阅读次数:
76
冒泡排序 ''' 冒泡排序算法的运作如下: 比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。最后的元素会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字 ...
分类:
编程语言 时间:
2020-07-26 00:38:05
阅读次数:
77
《数据结构与算法分析C语言描述》-第二版 ###1.插入排序 插入排序由N-1趟排序组成,第P趟排序之前,前P个元素已经排好序。第P趟排序时,前P个元素中大于第P+1个元素的数全部右移一位,然后将第P+1个元素插入对应的位置。 插入排序的时间复杂度为$O(N^2)$。 void InsertionS ...
分类:
编程语言 时间:
2020-07-24 16:52:27
阅读次数:
66
常用排序算法: 冒泡排序 插入排序 快速排序 选择排序 排序算法的时间&&空间复杂度 排序算法的稳定性 冒泡排序——bubbleSort 是一种简单的排序算法,重复地走访要排序的数列,一次比较两个元素,如果它们的顺序错误就把他们交换。走访数列的工作是重复的进行直到没有需要交换。 如果两个数关系不正确 ...
分类:
编程语言 时间:
2020-07-24 10:07:24
阅读次数:
101
1?? 利用拓扑排序算法,在拓扑排序算法结束后,如果还有顶点没有输出,则说明剩下这些结点都还有前驱,则它们构成一个有向回路 2?? 设有向图具有n个顶点,若该图的边数e≥n,则该图一定有一个闭合的环 3?? 设有向图具有n个顶点,若该图的每个顶点的出度至少为1,入度也至少为1,则图中一定有回路 4? ...
分类:
其他好文 时间:
2020-07-23 15:47:10
阅读次数:
147
1、最好情况、最坏情况、平均情况时间复杂度冒泡、插入都是O(n^2);快排、归并都是O(nlogn);桶、计数、基数都是O(n)2、排序算法的内存消耗原地排序算法:空间复杂度是 O(1) 的排序算法;冒泡排序,插入排序3、排序算法的稳定性稳定排序:如果待排序的序列中存在值相等的元素,经过排序之后,相 ...
分类:
编程语言 时间:
2020-07-22 01:58:40
阅读次数:
69
时间复杂度为O(nlogn)的排序算法---2020年7月21日 ...
分类:
编程语言 时间:
2020-07-21 23:15:07
阅读次数:
73
1.1概述 1959年Shell发明,第一个突破O(n^2)的排序算法,是简单插入排序的改进版。它与插入排序的不同之处在于,它会优先比较距离较远的元素。希尔排序又叫缩小增量排序。 1.2描述 选择一个增量序列t1,t2,…,tk,其中ti>tj,tk=1; 按增量序列个数k,对序列进行k 趟排序; ...
分类:
编程语言 时间:
2020-07-21 23:14:48
阅读次数:
77