zoukankan      html  css  js  c++  java
  • 对数组元素进行排序的方法总结(利用C++)

    首先,对数组元素进行排序方法总结为以下两类:

    一、简单排序算法(时间复杂度O(n*n))

    1.插入排序

    2.选择排序

    3.交换排序,即冒泡排序

     二、先进排序算法(时间复杂度O(n*logn))

    1.快速排序

    2.归并排序

    3.堆排序

    接下来,分别对其进行讨论:

    1.插入排序

    算法思想:每一步将一个待排序元素按其关键字值的大小插入到已排序序列的适当位置上,直到待排序元素插入完为止。

    算法实现:

    测试结果:

    2.选择排序

    算法思想:每次从待排序序列中选择一个关键字最小的元素(当需要按关键字升序排列时),顺序排在已排序序列的最后,直至全部排完。

    算法实现:

    测试结果:

    3.交换排序(冒泡排序)

    算法思想:两两比较待排序序列中的元素,并交换不满足顺序要求的各对元素,直至全部满足顺序要求为止。

    算法实现:

    测试结果:

    4.快速排序

    算法思想:

    1:分解,以a[p]为基准元素将a[p:r]划分成3段a[p:q-1],a[q],a[q+1:r],使a[p:q-1]中任何一个元素小于等于a[q],而a[q+1:r]中任何一个元素大于等于a[q]。

    2:递归,通过递归调用快速排序算法分别对a[p:q-1]和a[q+1:r]进行排序

    算法实现:

    测试结果:

  • 相关阅读:
    圣战结束
    Linux_系统管理_网络配置_命令行配置网络
    Window下MySQL安装配置
    Linux_系统管理_根据进程名kill进程
    Windows下PHP安装配置
    Apache + PHP + MySql windows xp 安装设置
    visual studio 2008生成asp.net网站的问题?
    数据库抽象层PDO和ADOdb
    正则表达式修正符
    linux搭建SVN服务器
  • 原文地址:https://www.cnblogs.com/cxmhy/p/4128221.html
Copyright © 2011-2022 走看看