概述
前面系列文章
插入排序: 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的寄存器中, //一部分在内存或者外存,这里就会多一层时间消耗。
插入排序和选择排序比较,不用比较了。
总结:这三种简单的排序算法当中,如果要推荐,应该要优先使用插入排序,效率会更高。还有在日常编程中,冒泡排序和选择排序,几乎很少用到(如果在数据量很小的排序当中,这几个算法也不会有太大的区别,调用次数多了,才会稍微有点区别),对于我们程序员来说,应该要追求更高效的做法(在插入,冒泡,选择)中,做出合适的选择。
转载于:https://www.cnblogs.com/gdouzz/p/10759399.html
最后
以上就是淡淡溪流为你收集整理的简单的三大排序算法选择的全部内容,希望文章能够帮你解决简单的三大排序算法选择所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复