如何在快速排序算法中添加延迟间隔以使其在客户端可视化?

D.门萨

我正在尝试使排序算法可视化,以了解有关排序算法以及Genereal中Angular和TypeScript编码的更多信息。

我目前正在快速排序,并且排序算法可以正常工作,但是无法在客户端显示视觉效果。我的排序代码如下:

performQuickSort(arr, min, max) {
    if (min >= max) { return; }

    let i = min;
    let j = max;

    const pivot = arr[Math.trunc((min + max) / 2)];

    while (i < j) {
      while (arr[i] < pivot) {
        i++;
      }

      while (arr[j] > pivot) {
        j--;
      }
      this._swap(arr, i, j);
    }

    this.performQuickSort(arr, min, i);
    this.performQuickSort(arr, i + 1, max);
  }

  _swap(arr, min, max) {
    if (min === max) { return; }

    const temp = arr[min];
    arr[min] = arr[max];
    arr[max] = temp;
  }

我已经尝试过使用setTimeout()并在内部执行交换操作,但延迟为1秒,但是它不起作用,因为我认为外部while循环执行得太快并导致连续的一秒延迟。

有谁知道如何在两次交换之间获得1秒的间隔,以便可以直观地看到排序?

提前致谢。

增长

我已经尝试过使用setTimeout()并在内部执行交换操作,但延迟为1秒,但是它不起作用,因为我认为外部while循环执行得太快并导致连续的一秒延迟。

好吧,setTimeout()异步执行,因此在_swap执行之前,它之后的下一行(this._swap())将立即使用_swap()执行前的值执行:

    //These get executed before your _swap if you put your _swap under a setTimeout

    this.performQuickSort(arr, min, i); 
    this.performQuickSort(arr, i + 1, max);

所以尝试把它们放进去 setTimeout()

 setTimeout(()=>{
   this.performQuickSort(arr, min, i); 
   this.performQuickSort(arr, i + 1, max);
  }, 1000);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

可视化排序算法

来自分类Dev

流星束可视化器将动态导入添加到初始客户端束

来自分类Dev

如何正确可视化劳埃德算法

来自分类Dev

从数据库服务器端创建绘图并在客户端对其进行可视化

来自分类Dev

使用C ++中的图形对排序算法进行可视化跟踪?

来自分类Dev

如何在Matlab中可视化Galois向量数组

来自分类Dev

如何在UML中可视化协议和扩展?

来自分类Dev

如何在Tensorboard中可视化指标回调?

来自分类Dev

如何在Google Colab中显示Vega可视化

来自分类Dev

如何在Android编程中可视化图?

来自分类Dev

如何在Excel图表中可视化资源需求?

来自分类Dev

如何在 TensorFlow 的单个图表中可视化损失?

来自分类Dev

如何在 Python 中可视化空间农艺数据?

来自分类Dev

如何在signalR中的我的hubClass中添加回调功能,以在延迟的情况下将当前工作状态更新为客户端?

来自分类Dev

如何减慢排序可视化器中的排序速度?为了更好的清晰度?

来自分类Dev

为Google可视化表列中的列添加自定义排序

来自分类Dev

为Google可视化表列中的列添加自定义排序

来自分类Dev

如何在Grid中冻结列并使其始终显示在WPF用户控件的客户端区域中

来自分类Dev

如何在新出生的客户端节点上添加厨师客户端配方(客户端注册后)

来自分类Dev

如何在 fiddler 的请求头中添加客户端 ip

来自分类Dev

使用Ajax时,我应该为可视化客户端和服务器端编写逻辑吗?

来自分类Dev

如何在ASP.NET Web API内存测试中添加客户端证书?

来自分类Dev

p4-如何在客户端中编辑为添加或未打开而打开的文件

来自分类Dev

如何在HTML5 Lightswitch客户端中检测添加或编辑模式?

来自分类Dev

如何在春季WS客户端请求中添加证书链

来自分类Dev

如何在SOAP客户端的子元素中添加前缀?

来自分类Dev

如何在RCP客户端的OSGI清单中添加cglib?

来自分类Dev

如何在 Visual Studio 2019 中添加 Google MyBusiness C# 客户端库

来自分类Dev

如何在JavaScript中在客户端保存/持久化和访问数据?

Related 相关文章

  1. 1

    可视化排序算法

  2. 2

    流星束可视化器将动态导入添加到初始客户端束

  3. 3

    如何正确可视化劳埃德算法

  4. 4

    从数据库服务器端创建绘图并在客户端对其进行可视化

  5. 5

    使用C ++中的图形对排序算法进行可视化跟踪?

  6. 6

    如何在Matlab中可视化Galois向量数组

  7. 7

    如何在UML中可视化协议和扩展?

  8. 8

    如何在Tensorboard中可视化指标回调?

  9. 9

    如何在Google Colab中显示Vega可视化

  10. 10

    如何在Android编程中可视化图?

  11. 11

    如何在Excel图表中可视化资源需求?

  12. 12

    如何在 TensorFlow 的单个图表中可视化损失?

  13. 13

    如何在 Python 中可视化空间农艺数据?

  14. 14

    如何在signalR中的我的hubClass中添加回调功能,以在延迟的情况下将当前工作状态更新为客户端?

  15. 15

    如何减慢排序可视化器中的排序速度?为了更好的清晰度?

  16. 16

    为Google可视化表列中的列添加自定义排序

  17. 17

    为Google可视化表列中的列添加自定义排序

  18. 18

    如何在Grid中冻结列并使其始终显示在WPF用户控件的客户端区域中

  19. 19

    如何在新出生的客户端节点上添加厨师客户端配方(客户端注册后)

  20. 20

    如何在 fiddler 的请求头中添加客户端 ip

  21. 21

    使用Ajax时,我应该为可视化客户端和服务器端编写逻辑吗?

  22. 22

    如何在ASP.NET Web API内存测试中添加客户端证书?

  23. 23

    p4-如何在客户端中编辑为添加或未打开而打开的文件

  24. 24

    如何在HTML5 Lightswitch客户端中检测添加或编辑模式?

  25. 25

    如何在春季WS客户端请求中添加证书链

  26. 26

    如何在SOAP客户端的子元素中添加前缀?

  27. 27

    如何在RCP客户端的OSGI清单中添加cglib?

  28. 28

    如何在 Visual Studio 2019 中添加 Google MyBusiness C# 客户端库

  29. 29

    如何在JavaScript中在客户端保存/持久化和访问数据?

热门标签

归档