一、基本排序算法 1. 冒泡排序 假如我们现在按身高升序排队,一种排队的方法是:从第一名开始,让两人相互比身高,若前者高则交换位置,更高的那个在与剩下的人比,这样一趟下来之后最高的人就站到了队尾。接着重复以上过程,直到最矮的人站在了队列首部。我们把队头看作水底,队尾看作水面,那么第一趟比较下来,最高 ...
分类:
编程语言 时间:
2016-09-04 16:06:58
阅读次数:
356
前提:分别用冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中的值按照从小到大的顺序进行排序。 $arr(1,43,54,62,21,66,32,78,36,76,39); 1. 冒泡排序 思路分析:在要排序的一组数中,对当前还未排好的序列,从前往后对相邻的两个数依次进行比较和调整,让较大的 ...
分类:
编程语言 时间:
2016-08-25 23:41:20
阅读次数:
219
前提:分别用冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中的值按照从小到大的顺序进行排序。 $arr(1,43,54,62,21,66,32,78,36,76,39); 1. 冒泡排序 思路分析:在要排序的一组数中,对当前还未排好的序列,从前往后对相邻的两个数依次进行比较和调整,让较大的 ...
分类:
编程语言 时间:
2016-08-24 19:13:58
阅读次数:
257
本篇主要实现九(八)大排序算法,分别是冒泡排序,插入排序,选择排序,希尔排序,归并排序,快速排序,堆排序,计数排序。希望大家回顾知识的时候也能从我的这篇文章得到帮助。 为了防止误导读者,本文所有概念性内容均截取自对应Wiki 冒泡排序 原理 冒泡排序(Bubble Sort)是一种简单的排序算法。它 ...
分类:
编程语言 时间:
2016-08-17 21:22:57
阅读次数:
268
1、冒泡排序:
冒泡排序的 基本思想是:两两比较相邻的数据,如果反序,则交换;知道没有反序位置。每一趟都会把一个数字放到最终的位置上!时间复杂度O(N^2)。
void bubbleSort2(int *data,int length)
{
bool swapFlag = true; //冒泡排序优化:当某趟过程中未发生交换,则停止整个排序过程
for (int i = 0;...
分类:
编程语言 时间:
2016-07-11 17:15:27
阅读次数:
244
7种基本排序算法的Java实现 转自我的Github 以下为7种基本排序算法的Java实现,以及复杂度和稳定性的相关信息。 以下为代码片段,完整的代码见Sort.java 插入排序 Shell排序 选择排序 堆排序 优先级队列内部实现就是一个最小堆,这里就不自己实现heap了 冒泡排序 快排 归并排 ...
分类:
编程语言 时间:
2016-07-04 23:45:39
阅读次数:
340
排序的元素实现了Comparable接口,以达到对于通用性. 最基础的排序是冒泡排序,下面是其思路: 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何 ...
分类:
编程语言 时间:
2016-07-03 18:40:27
阅读次数:
122
摘要 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 冒泡排序 1 func BubbleSort(vector []int) { 2 fmt.Println("BubbleSort") 3 fmt. ...
分类:
编程语言 时间:
2016-06-29 13:17:08
阅读次数:
169
1.首先定义一个需要排序的数组: 2.冒泡排序:相邻之间的数据做对比,每次对比后得出一个下次不需要再对比的数据。 3.插入排序:每次从待排序的一组数中取一个数与已排序的数据做对比。 4.选择排序:每次从待排序的一组数中判断最小或最大的数,并交换位置。 5.快速排序:以某值作参考,以该值为基准,分割带 ...
分类:
编程语言 时间:
2016-06-01 19:52:27
阅读次数:
272
希尔排序 原理:希尔排序也称之为递减增量排序,它是对插入排序的改进。在插入排序中,我们知道,插入排序对于近似已排好序的序列来说,效率很高,可以达到线性排序的效率。但是插入排序效率也是比较低的,他一次只能将数据向前移一位。比如如果一个长度为N的序列,最小的元素如果恰巧在末尾,那么使用插入排序仍需一步一 ...
分类:
编程语言 时间:
2016-05-17 21:17:11
阅读次数:
292