前言 冒泡,插入,选择这三种基础的排序算法,比较简单效率不高,工作中一般不会使用,但是当做算法来研究还是能了解一些知识的,本文以为基础,详细解析一下. 正文 首先要引入几个概念 稳定性 如果待排序数组中有相同的元素,排序过后它们的相对顺序不发生变化. 比如 排序过后为 这两个3的相对顺序不变.这样就 ...
分类:
编程语言 时间:
2020-04-10 00:12:18
阅读次数:
64
稳定性的定义与意义: 通俗地讲就是能保证排序前两个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。 如果是不稳定排序,则需要第二次排序,会增加系统开销。 选择排序: 举个例子,序列5 8 5 2 9,我们知道第一遍选择第1个元素5会和2交换,那么原序列中2个5的相对前后顺序就被破坏 ...
分类:
编程语言 时间:
2020-04-09 12:59:31
阅读次数:
136
算法思想: 通过与相邻元素的比较和交换来把小的数交换到最前面。这个过程类似于水泡向上升一样,因此而得名。 冒泡排序的时间复杂度为O(n^2) 举例: 4 2 3 1 5 第一趟冒泡 第一轮:2 4 3 1 5 第二轮:2 4 1 3 5 第三轮:2 1 4 3 5 第四轮:1 2 4 3 5 得到最 ...
分类:
编程语言 时间:
2020-04-09 10:28:16
阅读次数:
62
数据结构和算法 CMDB项目 ( ) 数据分析 数据结构和算法 ( ) 数据结构和算法地位: 操作系统 计算机组成原理 网络系统 软件工程 数据结构和算法 (考研必考) 数据结构和算法是计算结科学领域非常核心的一门课程。 程序 = 数据结构 + 算法 学习时长 算法 排序算法 冒泡排序 ( ) 选择 ...
分类:
编程语言 时间:
2020-04-09 00:53:12
阅读次数:
102
1. 排序 1.1 冒泡排序 1.2 选择排序 1.3 插入排序 1.4 希尔排序 1.5 快速排序 1.6 归并排序 2. 搜索 1. 排序 排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定顺序进行排列的一种算法。 排序算法的稳定性 稳定性:稳定排序算法会让原本有相等 ...
分类:
编程语言 时间:
2020-04-09 00:41:32
阅读次数:
85
顺序查找 1 def linear_search(li,val): 2 for i,k in enumerate(li): 3 if k == val: 4 return i 5 6 else: # for循环完毕后一定会执行else 7 return None View Code 二分法查找 1 ...
分类:
编程语言 时间:
2020-04-08 18:50:40
阅读次数:
67
nums = [1,9,8,5] print(nums) print(" ") length = len(nums) for i in range(length-1): maxindex = i for j in range(i+1,length): if nums[j] > nums[maxind ...
分类:
编程语言 时间:
2020-04-08 12:14:36
阅读次数:
59
算法 1、排序算法 冒泡排序 选择排序 插入排序 快速排序 希尔排序 计数排序 2、列表查找 从列表中查找指定的元素 顺序查找 从列表第一个元素开始,顺序进行搜索,直到找到为止 二分查找 从有序列表的候选区data[0: n]开始,通过对待查找的值与候选区中的值比较使候选区的值减半 数据结构与算法动 ...
分类:
编程语言 时间:
2020-04-07 09:58:34
阅读次数:
98
一、选择排序 选择排序是每次从未排序的部分选出一个最小的数字,放在已排序部分的最后,即每次选出最小的、第二小的,以此类推。当然,也可以每次从未排序的地方选出最大的数字,放在已排序部分的最前面,即每次选出最大的、第二大的,以此类推。 时间复杂度O(n^2)。 优点是交换次数最少。 代码: def se ...
分类:
编程语言 时间:
2020-04-06 11:55:02
阅读次数:
69