参考博客:https://www.cnblogs.com/guoyaohua/p/8600214.html 1.冒泡排序 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排 ...
分类:
编程语言 时间:
2020-02-28 01:42:51
阅读次数:
94
冒泡排序算法是一种稳定的排序算法。 冒泡排序算法原理如下: 1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3. 针对所有的元素重复以上的步骤,除了最后一个。 4. 持续每次对越来 ...
分类:
编程语言 时间:
2020-02-27 16:24:43
阅读次数:
48
快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序算法原理如下: 首先设定一个分界值,通过该分界值将数组分成左右两部分。 将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于或等于分界值,而右边部分中各元素都大于或等于分界值。 然后,左 ...
分类:
编程语言 时间:
2020-02-27 16:21:18
阅读次数:
62
总排序趟数与初始状态无关的有:(除了快速排序和优化的冒泡,其他都是) 算法复杂度与初始状态无关的有:堆排序、归并排序、选择排序、基数排序。 元素总比较次数与初始状态无关的有:选择排序、基数排序。 元素总移动次数与初始状态无关的有:归并排序、基数排序。 快速排序的最坏情形是数组为正序或逆序,如果pos ...
分类:
其他好文 时间:
2020-02-27 16:17:30
阅读次数:
69
Java实现的5大排序算法排序算法很多地方都会用到,近期又重新看了一遍算法,并自己简单地实现了一遍,特此记录下来,为以后复习留点材料。 废话不多说,下面逐一看看经典的排序算法: 1、Java排序算法之选择排序 选择排序的基本思想是遍历数组的过程中,以i代表当前需要排序的序号,则需要在剩余的[i…n-1]中找出其中的最小值,然后将找到的最小值与i指向的值进行交换。因为每一趟确定元素的过程中都会
分类:
编程语言 时间:
2020-02-26 15:34:25
阅读次数:
69
摘自 b站尚硅谷JAVA 视频教程 一维数组的声明和初始化 int[] ids;//声明 ids = new int[]{1,2,3};//静态初始化 String[] names = new String[5];//动态初始化 数组元素的默认初始化值 >整型数组 0 >浮点型 0.0 >char型 ...
分类:
编程语言 时间:
2020-02-26 11:36:47
阅读次数:
88
``` '''用python实现冒泡排序''' '''步骤一先实现最内层找出最大值的方式''' ls = [99,70, 33, 2,80,64, 55, 9, 13] # 定义一个随机的列表 def findMax(ls): '''第一次寻找最大的数值''' ls_len = len(ls) fo... ...
分类:
编程语言 时间:
2020-02-25 13:19:43
阅读次数:
95
算法学习技巧 先问自己几个问题 什么是什么? 为什么要这么写? 稳定性? 时间复杂度? 冒泡排序 是什么:首先拿到第1个元素,和它第二个比较,较大的放右边;第二个与第三个比,一直重复下去 ,最后一个就是最大的数 为什么:总共有n个数,主要是控制轮数,第二个是控制次数。比的次数 为:n-1 稳定性 时 ...
分类:
编程语言 时间:
2020-02-25 00:36:02
阅读次数:
69
1、冒泡排序 (1)算法原理: 1.比较相邻元素,如果第一个比第二个大,就交换他们两个; 2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数; 3.针对所有的元素重复以上的步骤,除了最后一个; 4.持续每次对越来越少的元素重复上面的步骤,直到没有任何 ...
分类:
编程语言 时间:
2020-02-24 18:57:06
阅读次数:
95
直接插入、选择排序、冒泡排序、快速排序、……归并排序、基数排序、希尔、堆排序、 直接插入: 思想是:1、将数据序列分成两部分,前一部分是有序的,后面一部分是无序的. 2、将无序变有序,首先从第一开始,然后第一,第二比较后排序,此时这两位就是有序的了;然后从无序的队列中取出第三位和第二位比较,然后他们 ...
分类:
编程语言 时间:
2020-02-23 16:32:03
阅读次数:
94