O(∩_∩)O~~~~ 这几天终于有放假了~~
这是我第一次写 Blog , 还请大家多多关照~~~~
前阵子在上课时,自己写出了一个自认很不错的排序算法,
现在就放出来给大家看看写得好不好
写的这个排序算法原理来自 QuickSort 快速排序:
1) 从数列中选出一个基点
2) 比这个基点大的放在基点后面, 比基点小的放在基点前面
3) 重新排序完后,以这个基点为准把数列分为两半,
再把这两半分别从第一步开始进行下去,直到全部排序完.
这是一张演示快速排序过程的图片----
下面就是我自己写出来的 QuickSort 快速排序
注:我是用 C++ 写的
第二个参数 beg 是较低的下标 , 第三个参数 end 是较高的下标
把第一个元素定为基点,变量 m 相当于指示中点的位置,
比较完后就会把 基点和中点 互相转换
除基点外,比基点小的都会被提到 第m位,每次都会把 m加1
最后,13行中的 swap() 就把基点移到 第m-1位,
因为第m位开始的都是比基点大的数.
14,15行的都是递归函数.
第14行把基点前的数据进行比较
第15行把基点后的数据进行比较
这个函数就把两个元素的值互相交换
需要注意的是得用指针传递.
^_^ 这就是我写出的快速排序,比较简单,不难理解.
没有评论:
发表评论