前面我们讲了一下冒泡排序,原理比较简单,但是我们发现他的排序比较慢,需要不断的进行数据的交换。然后我们来讲一讲选择排序,他不用一直进行数据的交换,他会找到最小的那个数,放在最左边,跟冒泡排序的不同之处,冒泡是两个数之间的比较,大的那个数放到右边。 选择排序 选择排序的原理也比较好理解,比如我们有n个 ...
分类:
编程语言 时间:
2021-01-05 11:29:13
阅读次数:
0
选择排序 选择排序,其算法的核心思想是:固定位置,选择元素,即:先从序列中,找到最小的元素,放在第一个位置,之后找到第二小的元素,放在第二个元素,以此类推,就可以完成整个排序工作了。 __author__ = 'kangpc' __date__ = '2020-12-2 0:34' # 选择排序 ' ...
分类:
编程语言 时间:
2020-12-14 12:58:52
阅读次数:
7
**算法名称:**选择排序 基本原理(从小到大): S1:选出数组中最小元素(记下标为i)(一基准值也可)。 S2:从剩余待排序数组元素选出最小元素与下标为(i+1)元素交换。 S3:重复S2。 算法图示: 图片来自https://www.runoob.com/w3cnote/selection-s ...
分类:
编程语言 时间:
2020-12-09 12:30:22
阅读次数:
9
思想:每次遍历列表,选择一个最大或者最小的数,然后将该数放在列表前面, 整个列表可以分为2部分:左边为每次选择的最大/最小数,右边等待选择的数据. 这个过程需要n-1趟,最后一个数肯定是最大/最小的数。 #!/usr/bin/env python #-*- coding:utf-8 -*- ''' ...
分类:
编程语言 时间:
2020-12-04 11:35:56
阅读次数:
23
冒泡排序:比较相邻两个项,若 第一个项 大于 第二个项,那么交换他们,元素向上移动一次,直到遍历结束。 来实现一下 function bubbleSort(arr) { // 提前存储数组的长度 避免每次遍历都读这个值 let { length } = arr // 开始一个外层循环,代表每次取下标 ...
分类:
编程语言 时间:
2020-11-30 15:29:42
阅读次数:
6
选择排序是一种简单直观的排序算法,其基本原理,对于一组记录的数据,通过第一次比较得到最小的记录,然后将该记录与第一条记录的位置交换;接着对不包含第一个以外的记录进行比较,得到最小记录并与第二个记录进行位置交换;重复该过程,知道进行比较的记录只有一个时为止。 以数组 {38,65,97,76,13,2 ...
分类:
编程语言 时间:
2020-11-20 11:27:23
阅读次数:
5
1.算法思想 选择排序,从头至尾扫描序列,找出无序区最小的一个元素,和有序区的最后一个元素比较,如果较小就交换元素,如果相等就不交换元素,接着下一次循环(有序区不断增加,无序区不断往后减少),执行同样的操作,最终得到一个有序序列。 2.C++实现 #include <iostream> using ...
分类:
编程语言 时间:
2020-11-19 12:46:29
阅读次数:
11
阅读本文大概需要5分钟本文我们主要来回忆一下几个基础的排序算法:冒泡排序、选择排序和插入排序。已经成为大牛的你,还记得当初这几个经典的排序算法吗?1.冒泡排序冒泡排序算法运行起来非常慢,但在概念上它是排序算法中最简单的,因此冒泡排序算法在刚开始研究排序技术时是一个非常好的算法。冒泡排序算法的基本流程是:每一轮从头开始两两比较,将较大的项放在较小项的右边,这样每轮下来保证该轮最大的数在最右边。算法程
分类:
编程语言 时间:
2020-11-10 11:37:53
阅读次数:
20
算法分析: 789456,首先选择第一个为最小值,跟后面的值进行比较7小于8不动,7小于9不动,7大于4则进行互换489756 789456 原始数据 489756 >479856 >459876 min=4 459876 >458976 >457986 >456987 min=5 456987 > ...
分类:
编程语言 时间:
2020-11-04 18:44:15
阅读次数:
19
选择排序 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。 再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。 重复第二步,直到所有元素均排序完毕。 1、声明循环变量i,初始值为0,小于数组长度-1 2、声明临时变量min,初始值为i 3、声明循环变量j,初始值为 ...
分类:
编程语言 时间:
2020-10-07 21:45:22
阅读次数:
47