• 简单的三大排序算法选择


        前面系列文章

          插入排序: https://www.cnblogs.com/gdouzz/p/10759390.html

       选择排序: https://www.cnblogs.com/gdouzz/p/10759239.html

       冒泡排序:   https://www.cnblogs.com/gdouzz/p/10720451.html

      (二)个人总结

      1、选择排序和冒泡排序比较

      选择排序和冒泡排序的比较,选择排序的时间复杂度,不论最好最坏都是o(n²),是因为比较次数的原因,但它的交换次数是比冒泡排序要少的,所以在某些情况下,可能会比冒泡排序快一点。冒泡排序因为交换次数的问题,在平时的编程中基本也不会用到。但是相对来说,出场率要比选择排序高。

           2、为什么说插入排序会比冒泡排序好

                //插入排序//if (tempValue < arr[k])
                        //{
                        //    arr[k + 1] = arr[k];
                        //}
                        //else
                        //{
                        //    break;
                        //}
                        //上面插入排序,只需要一次赋值操作,
                            // if (arr[j] > arr[j + 1])
                            // {
                                // var temp = arr[j];
                                // arr[j] = arr[j + 1];
                                // arr[j + 1] = temp;
                            // }
                        //下面表面看都已经3次赋值了,并且交换操作对CPU不友好。
    //为啥说,交换操作对CPU不友好呢,我们CPU的从内存里面加载数据的时候,一般是整块来加载的 //就是说会把相邻的数据都一块读到寄存器中(缓存中)。 //如果你是交换的话,当你一个数组非常庞大,假设第10项要和第10000项,一个在CPU的寄存器中, //一部分在内存或者外存,这里就会多一层时间消耗。

      插入排序和选择排序比较,不用比较了。

      总结:这三种简单的排序算法当中,如果要推荐,应该要优先使用插入排序,效率会更高。还有在日常编程中,冒泡排序和选择排序,几乎很少用到(如果在数据量很小的排序当中,这几个算法也不会有太大的区别,调用次数多了,才会稍微有点区别),对于我们程序员来说,应该要追求更高效的做法(在插入,冒泡,选择)中,做出合适的选择。

  • 相关阅读:
    redis 数据迁移
    redis
    Redis集群的三种模式
    Golang 协程 (goroutine) 与通道 (channel)
    Python生成器next方法和send方法区别
    python 文件
    Tornado 异步以及非阻塞的I/O
    python 多进程和多线程3 —— asyncio
    利用CSS改变图片颜色的100种方法!
    jquery获取div的位置
  • 原文地址:https://www.cnblogs.com/gdouzz/p/10759399.html
Copyright © 2020-2023  润新知