冒泡排序: 思想:一次比较数组中相邻的两项,如果前面比后面大,就交换位置,第一轮比较的结果的最后一个是最大的,以此类推,每一轮确定本轮中最大的值,一共需要比较数组的长度-1次 选择排序: 思想:每一轮依次取数组的一项与之后的每一项进行比较,如果后面小,交换位置,每一轮的结果确定一个最小值 ...
分类:
编程语言 时间:
2019-08-27 23:06:35
阅读次数:
102
选择排序: 将第一位依次与后面的元素相比较,得到最小值,与第一位交换。再用第二位依次与后面元素相比较,得到最小值,与第二位交换。 从原始数据中找到最小元素,并放在数组的最前面。然后再从下面的元素中找到最小元素,放在之前最小元素的后面,直到排序完成。 var arr = [5,99,2,9,1,5,6 ...
分类:
编程语言 时间:
2019-08-26 09:54:10
阅读次数:
87
稳定性 如果一个排序算法能够保留数组中 重复元素的相对位置 则可以被称为是 稳定 的 稳定的排序算法:插入排序、归并排序 不稳定的排序算法:选择排序、希尔排序、快速排序和堆排序 一般只有在稳定性是必要的情况下,稳定的排序算法才有优势。 各种排序算法的性能特点 | 算法 | 是否稳定 | 是否为原地排 ...
分类:
编程语言 时间:
2019-08-25 20:18:42
阅读次数:
109
选择排序 标签(空格分隔): python 排序算法 [TOC] 基本算法:一次确定一个最大值,或者最小值 二元选择排序 [x] 优化实现思路 同时固定左边最大值, 和右边最小值(降序排列) [x] 优点 减少元素迭代的次数 [x] 时间复杂度为: O(n (n/2)) 算法优化: 一躺确定一个最大 ...
分类:
编程语言 时间:
2019-08-24 18:49:59
阅读次数:
110
// PaiXu.maoPao(a); /** * 选择排序 */ /* 选择排序的逻辑是这样的,第一步先从整个数组中选出最小的放在数组的最左边(即索引为零的位置)。 然后从剩余的数组中选出最小的放在最左边(即索引为1的位置)一次类推,共筛选数组长度减一轮。 */// 创建一个无序数组 int[] ...
分类:
编程语言 时间:
2019-08-22 13:16:33
阅读次数:
85
public static void main(String[] args) { /** * 冒泡排序 * 思路:每个轮次都让第一个数和其后所有的数进行轮比较,如果这轮的第一个数大则和其下一个数交换位置,如果他一直大则冒泡的最后一位 * 1、除了最后一位,前面的数都需要进行冒泡 * 2、第一轮,第一... ...
分类:
编程语言 时间:
2019-08-22 12:45:39
阅读次数:
108
选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 2.1 算法描述 n个记录的直接选择排序可经 ...
分类:
编程语言 时间:
2019-08-22 00:34:50
阅读次数:
108
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括: 关于时间复杂度: 平方阶 ...
分类:
编程语言 时间:
2019-08-21 11:20:44
阅读次数:
80
摘要:选择排序在C语言中也有着广泛的应用,笔者在学习别人单片机代码的过程中经常看到许多经验丰富的老程序员 采用选择排序,因此,笔者也记录下来了选择排序。 目录 1.选择排序思想 2.选择排序示意图 3.算法时间复杂度和稳定性 4.示例代码 5.vs2015运行示意图 一、选择排序思想 选择排序是一种 ...
分类:
编程语言 时间:
2019-08-20 18:44:47
阅读次数:
112
冒泡排序 原理: 取序列的第一个元素,与序列剩余的元素比较,如果第一个元素大于剩余序列的某个元素,那么就交换他们的位置。 代码展示: 选择排序 原理: 首先在未排序的序列中找到最小或最大的元素,存放到序列的起始或末尾位置,然后在从剩余未排序元素中继续寻找最小或最大的元素,然后放到剩余未排序序列的起始 ...
分类:
编程语言 时间:
2019-08-18 23:52:55
阅读次数:
116