插入排序算法和冒泡排序算法有什么区别?
我到处搜索,但找不到确切答案
答案 0 :(得分:0)
Insertion Sort将您的数组分为两个部分,一个排序的部分和一个未排序的部分。该算法将未排序部分的第一个元素插入到已排序部分的正确位置。因为它试图在每个元素出现时都放置它们,所以排序的部分可能经常被重写,这相当昂贵。
气泡排序相反,它遍历数组并一次比较两个值。较大(或更小[取决于您的实现])的值被推到数组的末尾(冒泡),然后它查看下两个值(刚刚冒泡的一个值和下一个值)。当算法遍历数组时,最大(或最小)值是数组中的最后一个值。它将重复此过程(不影响数组末尾的排序值),直到对数组进行排序为止。如果您不是每次都交换值,而是仅标记最大值,则可以在每次迭代中一次交换就实现这一点。