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]进行排序

    算法实现:

    测试结果:

  • 相关阅读:
    java中反射
    mysql 的锁机制和ACID
    名词记忆
    switch语法之PHP
    PHP代码批量加密
    windows 20003 扩展安装后不成功的原因
    apache配置虚拟目录
    移动web在ios和android下点击元素出现阴影问题
    同时屏蔽ios和android下点击元素时出现的阴影
    DES
  • 原文地址:https://www.cnblogs.com/cxmhy/p/4128221.html
Copyright © 2011-2022 走看看