冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 ...
分类:
编程语言 时间:
2020-06-23 18:58:23
阅读次数:
51
以下代码都是JavaScript实现 1.冒泡排序 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-sc ...
分类:
编程语言 时间:
2020-06-23 13:16:22
阅读次数:
48
排序算法的稳定性定义: 一个数组中几个相同的关键字经过排序以后相对位置仍然不变,那么称改排序算法的是稳定的。 举个例子,在一个数组中,紫色的10排在红色的10前面,经过排序算法之后,紫色的10位置仍然排序红色的10之前,那么这个算法就是稳定的。 下面是几种排序算法的总结: 1.冒泡排序: 稳定 2. ...
分类:
编程语言 时间:
2020-06-22 21:17:38
阅读次数:
129
""" 归并排序 """ from math import floor merge_list = [11, 6743, 4656, 2321, 12, 54, 876, 232] # 合并两个数据,产生一个已经排序好的新的数组 def merge(left, right): # 设定临时数组 res ...
分类:
编程语言 时间:
2020-06-22 19:18:00
阅读次数:
61
本文分析冒泡、快速、选择、插入、希尔、归并和堆排序,为了对以下各个算法进行方便的测试,测试主方法体如下(Java 实现):public class Sort { public static void main(String[] args) { int[] input = {5, 4, 7, 1, 6... ...
分类:
编程语言 时间:
2020-06-21 15:46:10
阅读次数:
92
滴滴2019年php高级研发工程师面试题总结一 算法 基本排序算法要会写,时间复杂度要会推算, 主要是冒泡排序, 快速排序, 选择排序.查找算法,要会写二分查找法, 实际场景要会应用.实例算法思路要明白,基本算法看多了, 我觉得是几种思路的变换, 需要自己领悟.面试中考过: 猴子选大王 斗地主项目设 ...
分类:
Web程序 时间:
2020-06-20 21:54:50
阅读次数:
104
排序算法 这篇博文主要讲解一下主流的几大排序算法 选择排序 思路 选择排序应该是这么多排序算法中最简单的一种排序算法了,主要思路是找到数组中最小的元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小的元素就和自己交换)。再次,在剩下的元素中重复此行为。 时间复杂度:O(n^2) 特点 ...
分类:
编程语言 时间:
2020-06-20 00:44:40
阅读次数:
55
来源:https://www.bilibili.com/video/BV1B4411H76f?p=60 一、思路 快速排序:是交换排序中的一种,属于冒泡排序的改进方法。在数据中间找到一个基准值,如果想从小到大排列,比基准值小的放在基准值的左边,比基准值大的放在基准值的右边。然后左边右边分别递归快速排 ...
分类:
编程语言 时间:
2020-06-19 15:41:01
阅读次数:
61
来源:https://www.bilibili.com/video/BV1B4411H76f?p=60 一、思路 希尔排序:本质还是一种插入排序,分组和之前的简单插入排序不一样,这里给出一个增量,按照这个增量进行分组,增量是逐渐减小的,减小为1时进行最后一次排序。所以希尔排序也可以叫缩小增量排序。 ...
分类:
编程语言 时间:
2020-06-19 14:27:09
阅读次数:
50
NumPy中提供了各种排序相关的函数。这些排序函数实现了不同的排序算法,每个算法的特点是执行速度、最坏情况性能、所需的工作空间和算法的稳定性。下表为三种排序算法的比较。 种类速度最差情况工作区稳定性 ‘quicksort’ 1 O(n^2) 0 no ‘mergesort’ 2 O(n*log(n) ...
分类:
编程语言 时间:
2020-06-19 12:00:05
阅读次数:
52