2.2.8 排序算法

       排序算法,顾名思义,就是将毫无规则的多个数据项序列,重新排列成一个有序序列的算法。比较常用的排序算法有交换类排序、选择类排序和插入类排序。

1.交换类排序

       交换排序的实质是通过多次相邻两数据项的交换,最终达到排序的目的。我们介绍两个比较简单的交换类排序算法:冒泡排序和快速排序。

(1)冒泡排序

算法详细描述如下:

  • 假设有一组无序数据项排列,其数据项总共有n个,首先将第一个位置的数据项(记为a1)和第二个位置的数据项(记为a2)进行比较,如果a1>a2,则将a1和a2交换位置。然后在将第二位置的数据项和第三位置的数据进行比较,依次类推,直到第n-1的数据项和第n位置的数据项进行比较。
  • 重复第一步骤(重新从第一位置开始,比较第一位和第二位置的数据项,一直比较到第n位置的数据项),直到所有的数据项都已是按顺序排列为止。

       我们举例阐述如下:

                                                             图2.2.38 冒泡排序示例

        算法性能分析:

       在最好的情况下,即原始序列已经是有序序列,则对长度为n的线性表,冒泡排序算法只需比较n-1次,其时间复杂度为O(n)。

       在最坏的情况下,即原始序列是逆序排列,则对长度为n的线性表,冒泡排序算法需要比较的次数为n(n-1)/2,其时间复杂度为O(n2)。

(2)快速排序

      快速排序是在冒泡排序的基础上进行了优化,其算法详细描述如下:

  • 假设有一组无序数据项排列,其数据项总共有n个。我们从中取一个数据项K(通常的做法是取第一个位置上的数据项),然后以K为标准,把大于K的数据项都移动K的后面,把小于K的数据项都移到K的前面。这样以K为分界线,将数据项排列分成了两组。
  • 对产生的两组数据项排列重复步骤1的过程,进行分组,直到每个分组里面只有一个数据项为止。此时整个数据项排列就是有序的了。

      我们举例阐述如下:

               

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Ethernet是一种常见的计算机网络技术,它是用于局域网(LAN)的一种物理层和数据链路层协议。Ethernet 2.2.8是其中的一个版本,它提供了用于数据传输的基本规范和标准。Ethernet 2.2.8版本相对较旧,已经被更新的版本所取代。 Ethernet 2.2.8使用的是载波侦听多路访问/碰撞检测(CSMA/CD)协议。在这个协议中,多个设备共享同一条物理传输介质(例如双绞线或光纤),并且可以以全双工模式进行通信。设备在发送数据之前会先侦听线路,以确保没有其他设备正在发送数据。如果多个设备同时发送数据导致碰撞,设备会停止发送,并在随机时间后重新尝试发送。 Ethernet 2.2.8支持最大传输速率为10 Mbps(百万比特每秒),采用基带编码和Manchester编码方式来编码数据。它使用48位的MAC(媒体访问控制)地址来标识设备,这样可以确保数据传输到正确的目标设备。 尽管Ethernet 2.2.8已经被更先进的版本取代,但它仍然可以在某些老旧的网络设备中使用。现在,更常见的以太网版本包括Fast Ethernet(100 Mbps)、Gigabit Ethernet(1 Gbps)和10 Gigabit Ethernet(10 Gbps),它们提供了更快的传输速率和更高的性能。 总结起来,Ethernet 2.2.8是一种较旧的以太网版本,使用CSMA/CD协议和10 Mbps的传输速率。它使用48位MAC地址来标识设备,并且已经被更先进的以太网版本所取代。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值