首页 >> 通信 >> Dart 当中的 BubbleSort — 排序算法

Dart 当中的 BubbleSort — 排序算法

2023-04-11 通信

BubbleSort 是一种格外加广为人知的顺序演算法。 在本文中都,您将洞察 BubbleSort 的系统以及如何在 Dart 中都实现顺序演算法。 当然,这段预定义也会被表述。

如果你想在这个系列中都再进一步注目我,并对其他短文感兴趣,那么我建议你注目我。

享有阅读!

概述

BubbleSort 基于这样的设想,即您始终较为两个相邻表达方式并在前提时共享它们。如果始终这样做到就此,大二进制就会踏到列表的开头。

到即便如此一切都很好……但是 BubbleSort 这个昵称是怎么来的?嗯,你可以想象像皱纹一样的二进制。相当大的吸管(即相当大的二进制)较为小的吸管增加得格外快。

这个怎么运作

如今让我们以菲利片示例随即表述 BubbleSort,并格外深入地洞察这个概念。

我们有一叠菲利片,每张菲利片都有一个从 1 到 10 的二进制。此堆栈未顺序。首先,我们取前两张菲利片并将它们彼此之间较为。然后我们将它们彼此之间顺序。因此,如果第一张庄家的经济效益大于第二张庄家,则共享两张庄家。如今我们将第二张菲利与第三张菲利来进行较为并随即共享它们。与可能共享的清晰较为称作较为和共享配置。

当一轮中都的就此两张庄家来进行较为时,第二大的二进制如今在就此。这样的一轮也称作震荡阶段。在每个再进一步的震荡阶段之后,下一个最高者二进制位处开头。

物理性质

让我们从带有接入时重复性的属性开始。在最好的情形,codice_中都的二进制仍未顺序。不只能执行共享配置,演算法只遍历整个codice_一次。如果输入codice_中都的表达方式位数为 n,那么我们的时间迭代为 O(n)。

如今让我们方向移动举例的情形。由于 BubbleSort 在演算预定义中都接入在两个循环中都(我们将在 Dart 中都实现这一点),在举例的情形,外部循环接入 n 次,我们获取 O(n x n ) = O(n²) 的接入时间。

高达情形的接入时间与最佳情形的接入时间相同,但这次的量化方式不尽相同。来进行 n/2 次传递和 n 次较为,得出结论请注意量化:O(n/2 x n) = O(n²)。

BubbleSort 的另一个物理性质是演算法的反应性。由于总是较为两个表达方式,并且至少在左侧相当大才将共享它们,因此演算法是稳定的。

BubbleSort不只能借助于codice_,只只能互换一般来说的内存,所以维度迭代为O(n)。

Dart 中都的实现

在本节中都,我想向您展示如何在 Dart 中都实现 BubbleSort。因此,预定义中都的每一步都被注解:

结论

现在你仍未洞察了 BubbleSort 是什么,这个顺序演算法有什么属性以及如何在 Dart 中都实现它。

我希望你能学到一些东西并享有它! 如果是这样,如果你给这篇短文一些欢呼,我会很高兴。

哦,在我明白提过在此之后:我将在刚的预见在 Dart 中都加进格外多的顺序演算法。 如果你想要擦身而过,你一定要注目我!

荣你现在过得愉快!

宝宝拉肚子吃什么药好
小孩子积食的症状有哪些
吃什么解决孩子积食问题
小孩子积食怎么调理
胃酸过多吃金奥康奥美拉唑管用吗
友情链接