一. 冒泡排序(BubbleSort) 基本思想:两个数比较大小,较大的数下沉,较小的数冒起来。 过程: 比较相邻的两个数据,如果第二个数小,就交换位置。 从后向前两两比较,一直到比较最前两个数据。最终最小数被交换到起始的位置,这样第一个最小数的位置就排好了。 继续重复上述过程,依次将第2.3... ...
分类:
编程语言 时间:
2020-11-26 14:24:16
阅读次数:
8
滴滴2019年php高级研发工程师面试题总结一 算法 基本排序算法要会写,时间复杂度要会推算, 主要是冒泡排序, 快速排序, 选择排序.查找算法,要会写二分查找法, 实际场景要会应用.实例算法思路要明白,基本算法看多了, 我觉得是几种思路的变换, 需要自己领悟.面试中考过: 猴子选大王 斗地主项目设 ...
分类:
Web程序 时间:
2020-06-20 21:54:50
阅读次数:
104
1、堆的概念 堆排序依赖的数据结构是完全二叉树,要想是完全二叉树,前提必须是二叉树(废话),二叉树就要求父亲结点至多有两个孩子,即可以有一个、两个或者没有孩子。 完全二叉树则是在二叉树的基础上多了一些限制条件,那就是: 1、要么二叉树的每一层都是满的,即除叶子结点之外,其他结点都必须拥有左右孩子; ...
分类:
编程语言 时间:
2020-05-24 21:10:32
阅读次数:
66
基本排序算法 直接插入排序 方法:从当前记录开始,逐个与前面的记录比较,若当前记录小,则把前面的记录后移一位,否则插入当前记录 运行时间与待排序的记录的顺序有关 时间复杂度O(n2) 稳定性:稳定 代码 直接选择排序 做法:一次从未排序的序列中选择最小的值,与当前元素进行交换 时间复杂度: 稳定性: ...
分类:
编程语言 时间:
2020-03-08 19:33:48
阅读次数:
68
排序算法: 快速排序: 时间复杂度O(nlogn) 空间复杂度1 适用于大多数排序,性能很高 不稳定排序 步骤描述: 取数组首元素为基准值。设置一个i指针指向首元素,再设置一个j指针指向尾元素。在i<j的前提下。从j开始往回找,遇到第一个比基准值小的数,将该元素与基准值交换,i++;再从i往后找,遇 ...
分类:
编程语言 时间:
2019-12-08 10:42:15
阅读次数:
76
原文:https://www.cnblogs.com/xiaohuiduan/p/11188304.html 十大排序算法 基本排序算法: 选择排序 插入排序 冒泡排序 高效排序算法: 梳排序 希尔排序 快速排序 堆排序 牺牲空间节约时间的高效排序: 归并排序 基数排序 基数排序 下面我将以我自己的 ...
分类:
编程语言 时间:
2019-12-03 23:49:03
阅读次数:
141
本文将介绍数据排序的基本算法和高级算法。这些算法都只依赖数组来存储数据。 数组测试平台 首先我们构造一个数组测试平台类 使用测试平台类 基本排序算法 这些算法非常逼真地模拟了人类在现实生活中对数据的排序。 冒泡排序 它是最慢的排序算法之一,但也是一种最容易实现的排序算法。 之所以叫冒泡排序是因为使用 ...
分类:
编程语言 时间:
2019-11-02 19:42:13
阅读次数:
65
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/6/24 下午7:54 # @Author : lb # @File : test.py import numpy as np arr = np.random.randint(1... ...
分类:
编程语言 时间:
2019-09-13 19:50:29
阅读次数:
139
1.1 冒泡排序 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶 ...
分类:
编程语言 时间:
2019-07-23 14:59:22
阅读次数:
128
一、冒泡排序 这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。 冒泡排序算法的原理如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结 ...
分类:
编程语言 时间:
2019-06-18 21:23:30
阅读次数:
145