算法步骤 设数组为a[0…n-1]。 1. 初始时,数组全为无序区为a[0..n-1]。令i=0 2. 在无序区a[i…n-1]中选取一个最小的元素,将其与a[i]交换。交换之后a[0…i]就形成了一个有序区。 3. i++并重复第二步直到i==n-1。排序完成。 算法图示 算法基本性能 排序方法 ... ...
分类:
编程语言 时间:
2016-08-19 14:51:15
阅读次数:
137
选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法, 冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。 排序算法不稳定的含义是:在排序之前,有两个数相等. 但是在排序结束之后,它们两个有可能改变顺序.比如说: 在一个待排序队列中,A和B相等,且A排在B的前面,而排序之后,A排在了B的后面 ...
分类:
编程语言 时间:
2016-08-18 14:13:21
阅读次数:
295
转载自:http://www.cnblogs.com/cj695/p/3863142.html sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级。本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能讲讲 ...
分类:
编程语言 时间:
2016-08-18 12:47:53
阅读次数:
134
C# 选择排序 选择排序的原理,第一次从数组中选出最小的数,将它放在数组的第一位置,第二次再从数组中选出最小的数,将它放置在第二个位置,以后每次都选出最小的数,按照上边的排序方式,放置在数组中合适的位置,这样到最后选出的数就是有序的。 ...
分类:
编程语言 时间:
2016-08-18 08:47:10
阅读次数:
235
1、冒泡排序:时间复杂度为O(n2) 假设是由小到大排序:相邻两个数之间进行比较,较大的数在后面。一次比较过后最大的数排在最后面 如:40、8、15、18、12一次排序后为:8、15、18、12、40依次排好直到由小到大拍好 2、选择排序:时间复杂度为O(n2) 假设是由小到大的排序:每次选出排序一 ...
分类:
编程语言 时间:
2016-08-17 22:56:27
阅读次数:
143
本篇主要实现九(八)大排序算法,分别是冒泡排序,插入排序,选择排序,希尔排序,归并排序,快速排序,堆排序,计数排序。希望大家回顾知识的时候也能从我的这篇文章得到帮助。 为了防止误导读者,本文所有概念性内容均截取自对应Wiki 冒泡排序 原理 冒泡排序(Bubble Sort)是一种简单的排序算法。它 ...
分类:
编程语言 时间:
2016-08-17 21:22:57
阅读次数:
268
一,直接插入排序 二,希尔排序 三,选择排序 四,冒泡排序 五,快速排序 六,堆排序 七,归并排序 ...
分类:
编程语言 时间:
2016-08-17 10:09:07
阅读次数:
262
1.普通版: 2.加强版: 两种方法的不同之处:(判断循环处进行的步骤不同, 增加了代码的运行效率) 1.普通选择排序: 每次判断,符合条件时都会进行数据的交换,多运行了几行代码,浪费时间 2.加强版选择排序: 1)每次判断时,符合条件时只会交换数据的下标, 少运行了代码 2)只有当每次内层循环完毕 ...
分类:
编程语言 时间:
2016-08-16 00:38:21
阅读次数:
228
选择排序 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 时间复杂度 选择排序的交换操作介于 0 和 (n - 1) 次之间。选择排序的比较操作为 n (n ...
分类:
编程语言 时间:
2016-08-15 22:14:09
阅读次数:
173