计算机程序从根本上看包括两方面的内容:数据结构,算法。因此从某种意义上说,程序=数据结构+算法。 今后将逐步的学习算法与数据结构。 一、排序算法 1、简单排序 (1)直接插入排序(升序) 顾名思义,这个排序算法和“插入”有关。其基本思想是每步将待排序的记录,按照其大小插入到前面已经排序的子序列中合适 ...
分类:
编程语言 时间:
2019-04-16 16:24:55
阅读次数:
169
1 # Author:Json 2 3 class Sort(object): 4 ''' 5 this class include bubble sort,insert sort,select sort,quick sort,merge sort and heap sort 6 ''' 7 8 d... ...
分类:
编程语言 时间:
2019-02-22 18:33:56
阅读次数:
117
十大经典排序算法 主题: 关于时间复杂度: 平方阶 (O(n2)) 排序 各类简单排序:直接插入、直接选择和冒泡排序。 线性对数阶 (O(nlog2n)) 排序 快速排序、堆排序和归并排序。 O(n1+§)) 排序,§ 是介于 0 和 1 之间的常数。 希尔排序。 线性阶 (O(n)) 排序 基数排 ...
分类:
编程语言 时间:
2019-02-18 01:24:12
阅读次数:
199
合并排序: 合并排序算法是用来分治策略实现对n个元素进行排序的算法,其基本思想是:将待排序元素分成大小大致相同的两个子集合, 分别对两个子集合进行排序,最终将排好序的子集合并成要求的排好序的集合。 递归实现如下: 非递归实现如下:方法自个考虑,其实实现起来很简单。 ...
分类:
编程语言 时间:
2019-01-12 19:26:51
阅读次数:
230
题目链接:https://www.luogu.org/problemnew/show/P1583 题目描述一共有n(n≤20000)个人(以1--n编号)向佳佳要照片,而佳佳只能把照片给其中的k个人。佳佳按照与他们的关系好坏的程度给每个人赋予了一个初始权值W[i]。然后将初始权值从大到小进行排序,每 ...
分类:
编程语言 时间:
2019-01-10 22:19:35
阅读次数:
167
注:本篇文章简单实现了几种常见的排序,包括:冒泡排序,简单选择排序,插入排序,折半插入排序。 ...
分类:
编程语言 时间:
2018-12-25 18:12:20
阅读次数:
189
内容: 1、时间复杂度 2、简单排序 3、对数器使用 4、递归 注:实现代码为Java 1、时间复杂度 什么是常数时间的复杂度:一个操作如果跟数据量没有关系,每次都是固定时间内完成的操作就叫常数操作 关于时间复杂度: 时间复杂度为一个算法流程中常数操作数量的指标(一般是最差情况下),常用O(读作bi ...
分类:
编程语言 时间:
2018-12-22 01:26:02
阅读次数:
173
排序算法 排序算法中包括:简单排序、高级排序 简单排序 简单排序常用的有:冒泡排序、选择排序、插入排序 冒泡排序代码如下: 冒泡排序方法速度是很慢的,运行时间为O(N²)级。选择排序改进了冒泡排序,将必要的交换次数从O(N²)减少到O(N),不幸的是比较次数依然是O(N²)级。然而,选择排序依然为大 ...
分类:
编程语言 时间:
2018-11-25 16:29:23
阅读次数:
246
冒泡排序 通过两重循环来实现冒泡排序法, 外层的for循环用来从头开始遍历数组内的所有的元素. 内循环从数组的最后的一个元素开始便利, 每次遍历的次数等于元素总数减去排好的元素的数量, 这通过for 循环内的 j > i; 条件来实现, 每当我们正确的排好一个元素, i就加1. 内层的if判断语句实 ...
分类:
编程语言 时间:
2018-11-18 11:26:16
阅读次数:
165