内部排序算法c语言简单实现实现

内部排序分为

    1)通过插入进行排序

          1、简单插入排序——sampleInsertionSort

                把序列分为已排序未排序,每次重未排序中选择最前头的的元素,使用简单的从后往前的一个一个的比较来选择插入位置,然后重新排列元素位置(在这里我采用右旋转)。

          2、二叉插入排序——binaryInsertionSort

                把序列分为已排序未排序,每次重未排序中选择最前头的的元素,使用二叉查找来选择插入位置,然后重新排列元素位置(在这里我采用右旋转)。

          3、希尔排序——shellSort

                1)gap有序:确保gap有序时使用的是上面的法方法一(gap有序:即相隔gap的所有元素之间是有序的1、5、4、9、7、11是gap2有序的)

                2)gap的递减:gap一般是一个序列,其第一个元素为1;

         note:至于shellSort为什么能比较快,可以看看程序设计艺术中的第三篇,我也就只有个印象,写不出来。

    2)通过交换进行排序:

          1、冒泡排序——bubbleSort:

                相邻元素逆序则交换。

          2、快速排序——quicksort

                1)partion部分:选择一个元素,经过处理后使得其左边位置的元素小于等于它,其右边位置的元素大于等于他

                2)sort部分:不断的partion直到序列只有一个或零个元素

        note:快速排序为什么快同上

    3)通过选择进行排序:

          1、简单选择——sampleSelectionSort

                将元素分为有序和无序,每次重无序序列中选择最大的元素让其和无序序列中后位置的元素交换这样一步一步扩张有序序列,缩减无序序列,直到无序序列中只有一个元素。

          2、堆排序——heapSort

                1)建最大堆;

                2)交换堆头元素与堆尾元素,使堆大小减1;

                3)向下调整使得其保持堆的性质;

                4)重复这个过程,直到堆中只有一个元素。

    4)通过合并进行排序

    note:没写以后补上

    5)通过分布进行排序

    note:没写以后补上

第一次更新 2012 09 06

原码见https://github.com/erliang/basic-sort-algorithm


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值