项目需要,自己上学的时候接触过一些算法,我记得当时算法那门考了系里最高分,98分,想着没什么用呢,谁知道这两天就用到了,项目中涉及到了排序,我就重温了一下算法,说到算法,就我个人而言,第一就是想到了冒泡(最简单,也是最容易理解),但是项目中我没用冒泡,怕同事看到了说我低级,虽然算法只有老大写(别的同事都不写),我用了选择排序,显得难了点,感觉有些技术含量的,下边就是我用的选择排序算法:
- (N...
分类:
编程语言 时间:
2016-04-29 17:19:00
阅读次数:
232
选择排序,插入排序,希尔排序,归并排序,快速排序以及各个算法的效率比较...
分类:
编程语言 时间:
2016-04-29 16:24:03
阅读次数:
231
10种排序算法,分别是直接插入排序,折半插入排序,希尔排序,冒泡排序,快速排序,直接选择排序,树形排序,堆排序,归并排序,基数排序。各有千秋,但依旧有优劣之分,熟悉每一个算法,对于我们的代码优化,也将事半功倍。 1,直接插入排序: 基本思想: 假设待排的n个记录存放在变量R中,首先将R[1]看做是有 ...
分类:
编程语言 时间:
2016-04-29 14:15:01
阅读次数:
234
转自:http://www.cnblogs.com/zxcjj/p/5445757.html 10种排序算法,分别是直接插入排序,折半插入排序,希尔排序,冒泡排序,快速排序,直接选择排序,树形排序,堆排序,归并排序,基数排序。各有千秋,但依旧有优劣之分,熟悉每一个算法,对于我们的代码优化,也将事半功 ...
分类:
编程语言 时间:
2016-04-29 13:51:57
阅读次数:
272
堆排序相对冒泡排序、选择排序效率很高,不再是O(n^2).假若将一个序列升序排序好,那么我们来考虑最大堆还是最小堆来排序。假若是最小堆的话,堆的顶端必定是堆中的最小值,这样貌似可以。但是,如果是它的(一边或)子树左子树的节点数据值大于(一边或)右子树的节点数据值..
分类:
编程语言 时间:
2016-04-27 14:24:44
阅读次数:
252
一、选择排序的问题如果有n个数排序,简单排序需要选取一个极值(最大值或者最小值)需要比较n-1次。但是,每一轮比较并没有把以前比较过的结果保存下来,导致下一轮比较的时候会有比较过的数据继续比较大小,这其实影响了效率,做了很多无用功。堆排序是对简单选择排序的改进..
分类:
编程语言 时间:
2016-04-27 07:02:17
阅读次数:
398
项目需要,自己上学的时候接触过一些算法,我记得当时算法那门考了系里最高分,98分,想着没什么用呢,谁知道这两天就用到了,项目中涉及到了排序,我就重温了一下算法,说到算法,就我个人而言,第一就是想到了冒泡(最简单,也是最容易理解),但是项目中我没用冒泡,怕同事看到了说我低级,虽然算法只有老大写(别的同事都不写),我用了选择排序,显得难了点,感觉有些技术含量的,下边就是我用的选择排序算法:
- (N...
分类:
编程语言 时间:
2016-04-26 19:56:15
阅读次数:
256
计数排序1、 名次 :所谓名次,通俗理解即为该元素在序列中排行老几的意思。2.、如何求名次:依次对每一个元素进行比较,若排在自己(该元素)前面的元素比自己大,则前面的元素在排行计数上加1,反之则自己加1。3、利用附加数组的计数排序:根据自身名次重新整理一份排序序列存储在附加数组中,然后将附加数组值拷贝到原序列中。
1)代码:template void SortClass...
分类:
编程语言 时间:
2016-04-26 19:54:39
阅读次数:
184
常见经典排序算法 1.希尔排序 2.二分插入法 3.直接插入法 4.带哨兵的直接排序法 5.冒泡排序 6.选择排序 7.快速排序 8.堆排序 一.希尔(Shell)排序法(又称宿小增量排序,是1959年由D.L.Shell提出来的) /* Shell 排序法 */ #include <stdio.h ...
分类:
编程语言 时间:
2016-04-26 12:34:35
阅读次数:
258
首先从简单的开始。(结果从小到大),其中快速排序和选择排序是不稳定的。 1.选择排序 选择排序的优点主要是交换的次数较少,最坏情况下的时间复杂度为O(n2),最好情况下也是O(n2) 2.冒泡排序 冒泡排序在最坏的情况下算法复杂度为O(n2),最好的情况下为O(n) 3.插入排序 插入排序在基本有序 ...
分类:
编程语言 时间:
2016-04-25 06:26:19
阅读次数:
180