zoukankan      html  css  js  c++  java
  • 算法大神之路——排序

    从今天开始,给自己立下一个目标,每天晚上写一篇算法与数据结构的博客,用来给自己以后的算法工程师的目标铺路!

    今天晚上就以算法里面的排序,作为自己的第一章节吧.

    排序,就是讲一组数据,按照特定的规则去调换位置,使得数据具有某种顺序管理(递增或者递减).

    在排序过程中,数据的移动方式分为"直接移动"和"逻辑移动"

    直接移动是直接交换数据的位置,而逻辑移动则是仅仅改变数据的指针的值,而不移动数据的位置

    数据排序后的几点好处:
         数据比较容易阅读
         数据比较容易统计和整理
         可大幅度减少数据搜索的时间

    常见的排序分类

        冒泡排序,选择排序,插入排序,合并排序,快速排序,堆积排序,希尔排序,基数排序

    排序名称 排序特性
    冒泡排序 稳定,空间复杂度最佳
    选择排序 不稳定,空间复杂度最佳
    插入排序 稳定,空间复杂度最佳
    希尔排序 稳定排序,空间复杂度最佳
    快速排序 不稳定,空间复杂度最差O(n),最好为O(log2n)
    堆积排序 不稳定.空间复杂度最佳
    基数排序 稳定,空间复杂度为O(np)n为原始数据的个数,p为基底
  • 相关阅读:
    SharePoint中获取当前登录的用户名
    SharePoint 2013 图文开发系列之InfoPath入门
    在InfoPath中如何获取当前用户的信息(Profile)
    更新当前列并添加其他列
    poj3067 Japan
    poj2481 Cows
    poj1195 Mobile phones
    poj2299 Ultra-QuickSort
    lower_bound()和upper_bound
    hdu4339 Query
  • 原文地址:https://www.cnblogs.com/wangxinblog/p/7341644.html
Copyright © 2011-2022 走看看