每一轮选一个最小的和最靠前的位置交换。 栗子 : 3 7 1 5 第一轮:1 7 3 5 第二轮:1 3 7 5 第三轮:1 3 5 7 ...
分类:
编程语言 时间:
2016-10-09 23:19:20
阅读次数:
270
排序算法小结 排序有可以分为以下几类: (1)、插入排序:直接插入排序、二分法插入排序、希尔排序。 (2)、选择排序:简单选择排序、堆排序。 (3)、交换排序:冒泡排序、快速排序。 (4)、归并排序 (5)、基数排序 一、插入排序 思想:每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序 ...
分类:
编程语言 时间:
2016-10-08 02:07:40
阅读次数:
183
运行结果: 2.时间复杂度计算 第i趟需要进行n-i次比较,因此比较次数为n(n-1)/2. 交换次数,最好交换0次,最坏交换次数为n-1次。 最终的排序次数是比较和交换次数之和。因此,最终的总时间复杂度仍未为(n2)。 ...
分类:
编程语言 时间:
2016-10-07 22:59:32
阅读次数:
152
八种排序算法很长时间没有使用了,今天做一个总结,方便以后自己用的时候参考。 这八种排序算法都是内部算法,这八种排序算法分别是: 1. 插入排序 1)直接插入排序 2)希尔排序 2.选择排序 1)简单选择排序 2)堆排序 3.交换排序 1)冒泡排序 2)快速排序 4.归并排序 5.基数排序 一、直接插 ...
分类:
编程语言 时间:
2016-09-21 21:30:46
阅读次数:
255
基本思想: 在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。 简单选择排序的示例: 操作方法: 第一趟,从n 个记录中找出关键码最小的记 ...
分类:
编程语言 时间:
2016-09-19 23:59:12
阅读次数:
292
排序算法 常用排序算法的特点 常用排序法的时间复杂度和空间复杂度 插入排序(直接插入,希尔排序) 选择排序(‘简单选择排序,堆排序’) 交换排序(冒泡排序,快速排序) 归并排序 基数排序 直接插入排序 首先以第一个数字开始,每次选择,已排序数据中的后面一个数据插入到以排序数据中 希尔排序 跳跃性的选 ...
分类:
编程语言 时间:
2016-09-17 20:33:32
阅读次数:
160
代码[3, 1, 5, 7, 2, 4, 9, 6]--把全部的最小的数(1)的和第 1 个数(3)交换位置[1, 3, 5, 7, 2, 4, 9, 6]--把余下的最小的数(2)的和第 2 个数(3)交换位置[1, 2, 5, 7, 3, 4, 9, 6]--把余下的最小的数(3)的和第 3 个... ...
分类:
编程语言 时间:
2016-09-12 18:32:55
阅读次数:
182
稳定算法: 直接插入排序、折半插入排序、冒泡排序、归并排序 不稳定算法: 希尔排序、快速排序、简单选择排序、堆排序 直接插入排序(从原位置在有序部分逐次比较找到最终位置插入) void InsertSort(ElemType A[], int n) { int i, j; for( i = 2, i ...
分类:
编程语言 时间:
2016-09-11 18:54:29
阅读次数:
216
选择排序分为:简答选择排序、树形选择排序、堆排序,今天来学一下简答选择排序。 具体代码如下: 结果如下: 2 5 6 9 4 1 7 9 5 6 2 4 1 7 9 7 6 2 4 1 5 9 7 6 2 4 1 5 9 7 6 5 4 1 2 9 7 6 5 4 1 2 9 7 6 5 4 2 1 ...
分类:
编程语言 时间:
2016-09-08 14:40:24
阅读次数:
130
选择排序学过的有三种:简单选择排序、树形选择排序、堆排序 今天先来简单的了解一下堆排序: 完全二叉树,即从头到尾,从左到右依次排序,符合大堆(小堆)都行,即ki>=k2i && ki >= k2i+1 由于此处使用的是数组,则最长为array.length-1,并且 ki>=k2i+1 && ki ...
分类:
编程语言 时间:
2016-09-06 15:30:58
阅读次数:
202