直接插入排序和冒泡排序有什么区别 直接插入排序和冒泡排序有哪些不同

直接插入排序和冒泡排序有什么区别  直接插入排序和冒泡排序有哪些不同

最近认真学习了七大排序算法,为什么是七大,因为冒泡排序之前已经学习过了。


插入排序有两种,直接插入排序是其中一种,也是基本的一种,另一种是shell排序也称希尔排序。冒泡排序是交换排序的一种,下面讲述冒泡排序和直接插入排序这两种排序算法的异同。


冒泡排序是众多排序算法中最易于理解也是我最先接触的一种,而这里要比较的另一种算法--直接插入排序在易学和易理解上仅次于冒泡排序。同时,这两种算法又在外在表现上有一定的相同,在学习直接插入排序后会觉得那么的似曾相识,不自觉的与冒泡排序进行比较,分析出了以下异同:


同:

       外观呈现类似,即均会在一定次数操作循环后,在数组的一端会出现已排序完成的部分。

       语法类似,双层循环,与相邻元素比较交换。

异:

       所属大类不同,冒泡归属交换排序,顾名思义,两两比较交换以实现排序;直接插入排序,归属插入排序,将当前元素插入到已排序部分的恰当位置。

       已完成部分不同,对于冒泡排序,已完成部分即为最终顺序不会再修改,而直接插入排序则仅为临时顺序,基本趋势正确,但其中或许缺少为排序部分元素。


在分析后会发现现象相似,而本质不同,顾其确实是两种不同的排序算法。


在对这两种排序算法异常分析中,这里仅仅是浅尝辄止的做了比较,相信深入下去还能分析到更多,欢迎大家讨论。

你可能感兴趣的:(直接插入排序和冒泡排序有什么区别 直接插入排序和冒泡排序有哪些不同)