Bootstrap

C语言数据结构的8个排序

排序难点:算法多,容易混淆

1.直接(简单)插入排序:扑克牌


      特点:越有序越快,完全有序O(n),非常重要,这个是希尔排序的基础


 2.希尔(shell)排序

        分组后利用直接插入排序

3.冒泡排序:

        两两比较,大的往后走


* 4.快速排序:

       算法: 1.从后往前找比基准小的数字,找到往前挪
                   2.从前往后找比基准大的数字,找到往后挪

                   3.重复1.2
       缺点:1.越有序,越慢                
                  2.空间复杂度大,不稳定


  5.选择排序:

        每次都从待排序中选出最小的一个和待排序的第一个进行数据交换


  6.堆排序:

        算法:1.从最后一颗子树开始,从后往前调整
                   2.每次调整,从上往下调整
                   3.调整为大根堆
                  大根堆:在二叉树中所有的父都大于子
                  小根堆:在二叉树中所有的父都小于子
                  度:就是节点的分支
                  叶子节点:度为0
                  兄弟:同一个双亲的孩子之前被称为兄弟
                  深度:就是树的层高


  7.归并排序
            1.将两段有序的数据合并成为一段有序的数据,直到所有的数据都有序
            2.把两段有序的归并成为一段有序的,也称为2路有序
  8.基数排序(桶排序)
            局限性:不能处理负数
  9.第‘9’个排序
           链表排序
           1.单链表存放数据我们用什么排序?(冒泡,选择)
           2.双向链表存放数据我们用什么排序?(快排(STL自带的list为双向链表)࿰

;