zoukankan      html  css  js  c++  java
  • 排序算法

    一、归并排序

    该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。
    分割:
    将数组从中点进行分割,分为左、右两个数组
    递归分割左、右数组,直到数组长度小于2

    归并:
    如果需要合并,那么左右两数组已经有序了。
    创建一个临时存储数组temp,比较两数组第一个元素,将较小的元素加入临时数组
    若左右数组有一个为空,那么此时另一个数组一定大于temp中的所有元素,直接将其所有元素加入temp

    二、快速排序

    快速排序:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据比另一部分的所有数据要小,再按这种方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,使整个数据变成有序序列。

    实现步骤:
    1、选择枢纽元素median
    2、将比median小的元素移动到数组左边,比median大的元素移动到数组右边
    3、分别对median左侧和右侧的元素进行快速排序

    寻找枢纽

    找到left center right三个位置的值

    判断并且进行交换三个值

    把找到的枢纽移到right-1位置

    开始找正确的位置




    直到i>=j时停止循环 此时的i位置就是正确的位置

    把枢纽放到正确的位置

  • 相关阅读:
    如何学习新技术
    创建模式之工厂方法模式
    SQL Server 存储过程
    ASP.NET Cache的一些总结
    ACE_TSS研究
    利用Thunk让C++成员函数变回调函数
    ACE内存映射学习
    ACE的初始化
    双检锁模式学习
    ACE_Task笔记
  • 原文地址:https://www.cnblogs.com/yyrecord/p/13285710.html
Copyright © 2011-2022 走看看