排序算法总结(C语言版)1. 插入排序1.1 直接插入排序1.2 Shell排序2. 交换排序2.1 冒泡排序2.2 快速排序3. 选择排序3.1 直接选择排序3.2 堆排序4. 归并排序4.1 二路归并排序4.2 自然合并排序5. 分布排序5.1 基数排序1.插入排序1.1 直接插入排序...
分类:
编程语言 时间:
2014-08-01 23:04:42
阅读次数:
349
1.快速排序思想 快速排序基本思想是:通过一趟排序将序列分成独立的两部分,其中一部分的关键字都小于或都大于另一部分的关键字,则可以对这两部分记录继续排序,达到整个序列有序位置。假设待排序记录a1,a2...an,n个记录,首先任意选取一个记录作为轴pivot,将比它小的记录放到其左边,将比它大的记....
分类:
其他好文 时间:
2014-08-01 04:43:11
阅读次数:
244
快速排序是1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称为分治法(Divide-and-Conquer Method)。分治法的基本思想:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。快速排序的基本思想:设当前待排...
分类:
其他好文 时间:
2014-07-31 19:37:57
阅读次数:
184
快速排序(Quicksort) 是对冒泡排序的一种改进,它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 设要排序的数组是A...
分类:
移动开发 时间:
2014-07-24 22:28:52
阅读次数:
213
快速排序是从起泡排序改进而得的一种“交换”排序方法。它的基本思想是通过一趟排序将待排记录分割成相邻的两个区域,其中一个区域中的元素均比另一个区域中元素小(区域内不见得有序)则可对这两个区域内的元素进行再排序,以达到整个序列有序。//快速排序#includeint Partition(int a[] ...
分类:
其他好文 时间:
2014-07-16 18:52:04
阅读次数:
156
直接插入排序:将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1...
分类:
其他好文 时间:
2014-07-16 17:32:03
阅读次数:
223
写在前面:
排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列。因此排序掌握各种排序算法非常重要。对下面介绍的各个排序,我们假定所有排序的关键字都是整数、对传入函数的参数默认是已经检查好了的。只是简单的描述各个算法并给出了具体实现代码,并未做其他深究探讨。
基础知识:
...
分类:
其他好文 时间:
2014-07-16 09:47:22
阅读次数:
296
快速排序的基本思想:通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,则分别对这两部分继续进行排序,直到整个序列有序。把整个序列看做一个数组,把第零个位置看做中轴,和最后一个比,如果比它小交换,比它大不做任何处理;交换了以后再和小的那端比,比它小不交换,比他大交...
分类:
其他好文 时间:
2014-07-11 20:40:00
阅读次数:
231