《排序思想》 博客分类: 数据结构 排序插入排序交换排序选择排序归并排序 《排序思想》 数据结构 排序插入排序交换排序选择排序归并排序 一、介绍 排序是我们工作中经常碰到的一件事,基本每个项目都涉及到排序运算。一般,排序操作在数据处理过程中要话费许多时间。为了提高计算机的运行效率,人们提出不断改进各 ...
分类:
编程语言 时间:
2017-08-27 10:13:21
阅读次数:
212
参考:http://www.cnblogs.com/jingmoxukong/p/4302891.html 要点 快速排序是一种交换排序。 快速排序由C. A. R. Hoare在1962年提出。 它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分:分割点左边都是比它小的数,右边都是比它大 ...
分类:
编程语言 时间:
2017-08-23 11:47:08
阅读次数:
190
基本思想: 在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。 冒泡排序的示例: 算法实现 冒泡排序算法的改进 对冒泡排序常见的改进方法是加入一标志性变 ...
分类:
编程语言 时间:
2017-08-23 00:54:24
阅读次数:
220
分类: 1)插入排序(直接插入排序、希尔排序) 2)交换排序(冒泡排序、快速排序) 3)选择排序(直接选择排序、堆排序) 4)归并排序 5)分配排序(基数排序) 所需辅助空间最多:归并排序 所需辅助空间最少:堆排序 平均速度最快:快速排序 不稳定:快速排序,希尔排序,堆排序。 // 排序原始数据 p ...
分类:
编程语言 时间:
2017-08-14 11:39:13
阅读次数:
251
交换排序 所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。 排序入门之冒泡排序 冒泡排序是典型的交换排序算法。冒泡排序的时间复杂度为O(n2),可以说效率比较低,但是,冒泡排序体现的思想 ...
分类:
编程语言 时间:
2017-08-13 22:18:07
阅读次数:
192
冒泡排序法 冒泡排序法又称为交换排序法,是由观察水中冒泡变化构思而成,气泡随着水深压力而改变.气泡在水底时,水压最大,气泡最小,而气泡慢慢浮上水面时,气泡所受压力最小,体积慢慢变大. 冒泡排序比较方式是从第一个元素开始,比较相邻的元素大小,如果大小顺序有误,则对调后进行下一个元素比较.直到所有元素满... ...
分类:
编程语言 时间:
2017-08-10 23:45:24
阅读次数:
249
交换排序的基本思想是:两两比较待排序记录的关键字,一旦发现两个记录不满足次序要求时则进行交换,直到整个序列全部满足要求为止。 交换排序算法分为冒泡排序和快速排序 冒泡排序(Bubble Sort)是一种最简单的交换排序方法,它通过两两比较相邻记录的关键字,如果发生逆序,则进行交换,从而使关键字小的记 ...
分类:
编程语言 时间:
2017-08-09 23:44:02
阅读次数:
184
快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。 该方法的基本思想是: 1.先从数列中取出一个数作为基准数。 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边 ...
分类:
编程语言 时间:
2017-08-05 21:15:36
阅读次数:
231
1.高速排序 交换排序有:冒泡(选择)排序和高速排序,冒泡和选择排序的时间复杂度太高,思想非常easy临时不讨论。高速排序基于一种分治的思想,逐步地使得序列有序。 #include <iostream> #include <conio.h> using namespace std; int arrs ...
分类:
编程语言 时间:
2017-07-25 12:36:10
阅读次数:
209
类别排序方法时间复杂度空间复杂度稳定性插入排序插入排序O(N^2)O(1)稳定希尔排序O(N^3/2)O(1)不稳定选择排序选择排序O(N^2)O(1)不稳定堆排序O(N)O(1)不稳定交换排序冒泡排序O(N^2)O(1)稳定快速排序O(NlogN)O(logN)不稳定归并排序归并排序O(NlogN)O(N)稳定
分类:
编程语言 时间:
2017-07-20 10:20:13
阅读次数:
149