排序实训问答

排序

注意事项:

问:你这排序怎么会出现两个0毫秒 或者怎么会出现0毫秒的现象呢?

答:在计算机中,时间的计算是以毫秒为单位的。当两个时间间隔非常短,小于1ms时,计算机可能会将时间计算为0毫秒。因此,当排序算法的执行时间非常短时,可能会显示为0毫秒。

问:你们的实验结论是什么?

选择排序:

  • 优点:实现简单,不需要额外的内存空间
  • 缺点:不适用于数据量较大的排序场景

适用场合:适用于排序数据量较小的场合。

希尔排序:

  • 优点:排序速度相对较快,适用于数据量较大的排序场合
  • 缺点:实现较为复杂,需要设置合适的步长需要分析一下数据

适用场合:适用于数据量较大的排序场合。

快速排序:

  • 优点:排序速度较快,适用于数据量较大的排序场合
  • 缺点:对于极端情况(如逆序数据),速度会变慢

适用场合:适用于数据量较大的排序场合。

插入排序:

  • 优点:在部分有序的数组中表现较好
  • 缺点:对于逆序数据,也会变慢

适用场合:适用于部分有序的排序场合。

冒泡排序:

  • 优点:实现简单,不需要额外的内存空间
  • 缺点:时间复杂度较高,不适用于数据量较大的排序场合

适用场合:适用于排序数据量较小的场合。

排序算法解析

tips:说一下这几种排序怎么实现的

  1. 选择排序:就像打牌游戏中摸牌时那样,每次从牌堆中找到最小或最大的牌,放到手中的牌堆,直到牌堆中的牌都排好序了。但是这种方法比较慢,因为两个数进行比较后,它们在排好序中的位置可能并不是最终的位置。

  2. 希尔排序:我们可以先把待排序的数以一定的间隔分为几组,对于每组数分别进行排序,然后逐渐缩小组的间隔距离再进行排序。这样做的好处是可以大大减少比较和移动元素的次数,从而提高排序效率。

  3. 快速排序:选择一个基准点,将数组分成两部分,左边部分的元素都比基准点小,右边部分的元素都比基准点大。然后对左右两部分数组分别进行同样的操作,直到数组排好序。这种算法的好处是快速,但需要注意基准点的选择。

  4. 插入排序:类似于打扑克时的排序方式,将手中的牌逐个插入到已经排好序的牌堆中,要注意插入时的位置,这种排序方法尤其适用于排序数据量较小的场合。

  5. 冒泡排序:从第一个元素开始,对相邻的两个元素进行比较和交换,把最大的元素“冒泡”到数组的最后一个位置。然后,对除最后一个位置以外的数组元素进行同样的操作,直到整个数组排好序。这种算法的缺点是效率较低,但优点是实现简单,适用于排序数据量较小的场合。

相关推荐

  1. 排序问答

    2023-12-27 09:56:03       38 阅读
  2. BGP<span style='color:red;'>实</span><span style='color:red;'>训</span>

    BGP

    2023-12-27 09:56:03      14 阅读
  3. 华为课笔记

    2023-12-27 09:56:03       36 阅读
  4. 寒假第二天

    2023-12-27 09:56:03       41 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-27 09:56:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-27 09:56:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-27 09:56:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-27 09:56:03       20 阅读

热门阅读

  1. 博客搬家公告

    2023-12-27 09:56:03       43 阅读
  2. centos卸载jenkins

    2023-12-27 09:56:03       40 阅读
  3. python读取xlsx格式的excel

    2023-12-27 09:56:03       38 阅读
  4. 【测试开发】测试分类相关知识

    2023-12-27 09:56:03       34 阅读
  5. Hadoop-3.3.4集群部分lib缺失问题

    2023-12-27 09:56:03       38 阅读
  6. AutoSAR(基础入门篇)2.1Autosar架构中的AppL

    2023-12-27 09:56:03       42 阅读
  7. vs c++ 查询mysql 获取返回集数据转化

    2023-12-27 09:56:03       42 阅读
  8. 如何修改MySQL的默认端口

    2023-12-27 09:56:03       41 阅读
  9. ES实用的深度解构赋值方法

    2023-12-27 09:56:03       40 阅读
  10. Linux空间不足处理

    2023-12-27 09:56:03       46 阅读