1. 冒泡排序的实现 冒泡排序是所有排序算法中最基本、最简单的一种。思想就是交换排序,通过比较和交换相邻的数据来达到排序的目的。 设数组的长度为N: 1、比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换。 2、这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就 ...
分类:
编程语言 时间:
2018-06-04 14:32:58
阅读次数:
226
简介: 冒泡排序(Bubble sort):时间复杂度O(n^2)交换排序的一种。其核心思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序记录为止。 重复列表进行排序,比较每对相邻的项目,如果它 们的顺序错误,则交换它们 在每次通过时,未排序的最大元素已被“冒泡 ”到阵列末端的合适位置 ...
分类:
编程语言 时间:
2018-05-30 22:45:11
阅读次数:
259
分类 一、按照是否数据涉及内外存交换 1-内部排序:适用于记录个数不是很多的小文件 2-外部排序:适用于记录个数太多,不能一次将全部记录放入内存的大文件 二、按照策略划分内部排序方法 1-插入排序:直接插入排序与希尔排序 2-选择排序:直接选择排序与堆排序 3-交换排序:冒泡排序与快速排序 4-归并 ...
分类:
编程语言 时间:
2018-05-27 17:18:07
阅读次数:
252
快速排序又被称为分割交换排序,是目前公认最佳的排序方法。它的原理和冒泡排序一样都是用交换的方式,不过它会现在数据中找到一个虚拟的中间值作为基准数,把小于这个基准数的数据放到它的左边,大于这个基准数的数据放到它的右边,再以递归的方式处理这个基准数左右两边的数据,直到完成为止。 假设我们有一组数56,1 ...
分类:
编程语言 时间:
2018-05-25 15:27:51
阅读次数:
229
冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序是错误的,那就把他们是顺序换过来。 遍历数列的工作是重复地进行直到没有再需要交换的元素,也就是该数列已经排序完成。这个算法的名字由来是因为越小的元素会经过交换慢慢“浮”到数列的顶端。 冒 ...
分类:
编程语言 时间:
2018-05-06 22:56:07
阅读次数:
239
一.快速排序概念及其思想 快速排序(QuickSort),又称为交换排序,是分治算法的一种,快速排序采用分治的策略。 1.分治法的基本思想: 将原问题分解为若干个规模更小但结构和原问题相似的子问题。递归这些子问题,然后将这些子问题的解组合为原问题的解。 2.快速排序的基本思想 通过一趟排序将要排序的 ...
分类:
移动开发 时间:
2018-05-01 13:55:42
阅读次数:
194
"转载请注明出处,谢谢!" 冒泡排序算法思想: 自下而上(或上而下)扫描记录序列,相邻的两条记录 与`Ri-1 Ri+1`)如果是逆序,则交换位置。 交换排序 冒泡排序 快速排序 算法说明 一个名声不太好的算法 排序是稳定的 ArrayList实现: java import java.util.Ar ...
分类:
编程语言 时间:
2018-04-22 19:59:25
阅读次数:
189
交换排序 3.冒泡排序 时间复杂度:O(n2) O(n) O(n2) 空间复杂度:O(1) 思想:对待排序元素的关键字从后往前进行多遍扫描,遇到相邻两个关键字次序与排序规则不符时,就将这两个元素进行交换。这样关键字较小的那个元素就像一个冒泡一样,从最后面冒到最前面来。稳定性:稳定,相邻的关键字两两比 ...
分类:
编程语言 时间:
2018-04-17 11:38:17
阅读次数:
188
排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。 内排序有可以分为以下几类: (1)、插入排序:直接插入排序、二分法插入排序、希尔排序。 (2)、选择排序:直接选择排序、堆排序。 (3)、 ...
分类:
编程语言 时间:
2018-04-10 13:39:28
阅读次数:
179
简介 内部排序算法就是指内存中的排序算法,而外部排序算法则是指待排序数据过多,无法一次性加载到内存中,排序过程需要读取磁盘,因此需要考虑磁盘 IO 的消耗! 内部排序算法分类 内部排序算法按照操作类型可大致分为五类:①插入排序;②交换排序;③选择排序;④归并排序;⑤计数排序; 内部排序算法按照时间复 ...
分类:
编程语言 时间:
2018-04-07 13:58:27
阅读次数:
140