Heaps and Heapsort: 堆是一种快速访问最大优先级元素的数据结构,这是快速实现选择排序的基础,但是总体来说平均速度比快排要慢一点,不过其最坏情况和平均情况是差不多的。 首先是堆的定义,每个结点比它的孩子结点都小(所以父节点最小),或者每个结点都比它的孩子结点大(父节点最大),把A[1 ...
分类:
其他好文 时间:
2020-02-03 12:07:47
阅读次数:
112
微信公众号:bigsai 前言 在排序中,我们可能大部分更熟悉冒泡排序、快排之类。对归并排序可能比较陌生。然而事实上归并排序也是一种稳定的排序,时间复杂度为O(nlogn). 归并排序是基于分治进行归并的,有二路归并和多路归并.我们这里只讲二路归并并且日常用的基本是二路归并。并且归并排序的实现方式有 ...
分类:
编程语言 时间:
2020-02-02 19:48:33
阅读次数:
100
思路:标准贪心 先把所有思路列出来: 1.优先选择开始时间最早的,经分析,不可行 2.优先选择持续时间最短的,经分析,不可行 3.优先选择结束时间最早的,经分析,可行 然后根据第三种思路实现代码就好 实现思路:先将数据存在二维数组里,然后用冒泡排序结束时间升序排序,然后遍历一遍,选择时间能衔接得上的 ...
分类:
编程语言 时间:
2020-02-02 19:29:14
阅读次数:
91
前言 冒泡排序是一种通用的算法,凡是通用的,可以理解为效率不高,但是通用。 code 从小到大的排序: 这里面稍微有点难以理解的地方是如何一开始就确认: i arr[j + 1]) { temp = arr[j+1]; arr[j + 1] = arr[j]; arr[j] = temp; hasS ...
分类:
编程语言 时间:
2020-02-02 14:12:34
阅读次数:
96
1.选择排序法 每循环一次将最值挑出来放在前面,实践复杂度为O(n^2),不稳定排序,其基本的语法如下: 2.冒泡排序法 每循环一次将最值冒到尾部,时间复杂度为O(n^2),稳定排序,其基本的语法如下: 3.C++STL之sort排序 sort排序可以捆绑结构体一起使用,求出原来的序号和排序后的序号 ...
分类:
编程语言 时间:
2020-02-02 13:36:17
阅读次数:
69
归纳 1.时间复杂度为o(n^2) 冒泡排序 选择排序 插入排序 希尔排序 2.时间复杂度为o(nlogn) 快速排序 归并排序 堆排序 3.时间复杂度为线性排序 计数排序 桶排序 基数排序 ...
分类:
编程语言 时间:
2020-02-02 11:33:32
阅读次数:
66
求分数最高学生名字 本题我使用了结构体 结构体变量为数组a,每个元素为student类型 在进行过对结构体成员赋值后 之后进行排序 我参考了一下课本 也使用了冒泡排序 但冒泡排序的时间复杂度较高,可能数据过大后需要对程序进行优化 #include<iostream> #include<cstdio> ...
分类:
编程语言 时间:
2020-02-02 01:23:07
阅读次数:
71
1 #include <stdio.h> 2 3 #define ASC 0 //升序,从左到右,从小到大 4 #define DESC 1 //降序,从左到右,从大到小 5 #define TRUE 1 //布尔值,真 6 #define FALSE 0 //布尔值,假 7 8 typedef i ...
分类:
编程语言 时间:
2020-02-01 15:56:52
阅读次数:
89
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 实例 import sys A = [6 ...
分类:
编程语言 时间:
2020-01-31 14:25:52
阅读次数:
63
冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。 def bu ...
分类:
编程语言 时间:
2020-01-31 14:21:21
阅读次数:
71