zoukankan      html  css  js  c++  java
  • 数据结构:第八章学习小结

     1 概述
     2     待排序记录的存储方法
     3     排序算法的效率评价指标
     4         时间效率
     5             排序速度(比较次数与移动次数)
     6         空间效率
     7             占内存辅助空间的大小
     8         稳定性
     9             A和B的关键字相同,在排序之后先后顺序保持不变
    10 
    11 内部排序
    12     插入排序
    13         直接插入排序
    14             利用顺序查找
    15                 查找
    16                     循环结束表明R[i]的插入位置在j+1
    17                 后移
    18                     注意第二个for中,若把<改为<=,那么相等的两个数就会调换位置,会变为不稳定
    19                 插入
    20             最坏情况下,第i趟比较i次,移动i+1次
    21         折半插入排序
    22             利用折半查找
    23                 减少了比较的次数,但并没有减少移动次数
    24                 是一种稳定的排序方法
    25     交换排序
    26         两两比较,如果发生逆序则交换,直到所有记录都排好序为止
    27             冒泡排序
    28                 每趟不断将记录两两比较,并按照”前小后大规则交换
    29                 第i趟确定了a[n-i+1]
    30                 比较次数和移动次数与初始排列有关
    31                 最坏情况下,需要n-1趟排序,第i趟比较n-i次,移动3(n-i)次
    32             快速排序
    33                 任取一个元素为中心,比它小的往前方,大的往后放,形成左右两个子表
    34                 如果待排序记录的初始状态为按关键字有序时,快速排序将蜕化为冒泡排序。为了避免这种情况要进行预处理。
    35                 稳定性:不稳定,交换时会打乱前后顺序
    36     选择排序
    37         简单选择排序
    38             底层的存储结构,必须是数组
    39             移动次数
    40                 最好:0
    41                 最坏情况:3(n-1)
    42             稳定性
    43                 非相邻交换,所以不稳定
    44         堆排序
    45             注意:满足一定条件才能成为堆
    46             要不断检查非终端结点
    47             基本思想
    48                 将无序列表建成一个堆
    49                 输出堆顶的最小(大)值
    50                 使剩余的n-1个元素又调整成一个堆,则可得到n个元素的次小值
    51                 重复执行,得到一个有序序列
    52             不断输出-调整,n-1次
    53     归并排序
    54         思想
    55             将两个或两个以上的有序子序列“归并”为一个有序序列
    56         操作
    57             将两个位置相邻的记录有序子序列
    58             归并为一个记录的有序序列
    59 
    60 外部排序
    思维导图文字版

    冒泡排序:

    快速排序的划分

    心得体会:

    这一章讲述了内部排序的许多方法,每一种方法都有着对应的优缺点,在使用时要注意区分。

    因为考试周的来临,对待这一章的学习认真程度不够,也不够专注,有些浮躁。这一点需要多注意,对缺失的知识学习要及时补,要及时弄熟弄懂。

    虽然数据结构的学习进度已经完成,但还是有许多不足的点,特别是代码的实现能力,希望能够在暑期锻炼自己,缺什么补什么。

  • 相关阅读:
    Linux内核配置过程
    Linux内核最顶层文档
    LeetCode 11月第2周题目汇总
    Chapter0
    序列加法的讨论
    ch2-基本工具介绍
    ch1-数据科学概述
    在Linux下制作Linux&windows启动盘
    VMware Workstation 与 Device/Credential Guard 不兼容?
    Linux mint 19.3配置CUDA+安装Tensorflow
  • 原文地址:https://www.cnblogs.com/zhongjingyi/p/13287806.html
Copyright © 2011-2022 走看看