Sorting algorithms comparison - Firefox Developer Tools 编辑

This article describes a simple example program that we use in two of the Performance guides: the guide to the Call Tree and the guide to the Flame Chart.

This program compares the performance of three different sorting algorithms:

  • bubble sort
  • selection sort
  • quicksort

It consists of the following functions:

sortAll()Top-level function. Iteratively (200 iterations) generates a randomized array and calls sort().
sort()Calls each of bubbleSort(), selectionSort(), quickSort() in turn and logs the result.
bubbleSort()Implements a bubble sort, returning the sorted array.
selectionSort()Implements a selection sort, returning the sorted array.
quickSort()Implements quicksort, returning the sorted array.
swap()Helper function for bubbleSort() and selectionSort().
partition()Helper function for quickSort().

Its call graph looks like this:

sortAll()                     // (generate random array, then call sort) x 200

    -> sort()                 // sort with each algorithm, log the result

        -> bubbleSort()

            -> swap()

        -> selectionSort()

            -> swap()

        -> quickSort()

            -> partition()

The implementations of the sorting algorithms in the program are taken from https://github.com/nzakas/computer-science-in-javascript/ and are used under the MIT license.

You can try out the example program here and clone the code here (be sure to check out the gh-pages branch). You can also download the specific profile we discuss - just import it to the Performance tool if you want to follow along. Of course, you can generate your own profile, too, but the numbers will be a little different.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:119 次

字数:2857

最后编辑:7年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文