c一维数组直接插入排序,输出每一趟排序的结果
时间: 2023-11-15 13:03:32 浏览: 137
直接插入排序是一种简单的排序算法,适用于数组元素较少或者基本有序的情况。算法的思想是将待排序的数组分为有序和无序两个部分,然后逐个将无序的元素插入到有序的部分中,最终实现整个数组的有序排列。
假设我们要对一个一维数组arr进行直接插入排序。首先将数组arr的第一个元素看作是有序的部分,然后将数组的第二个元素到最后一个元素看作是无序的部分。接下来,从无序部分的第一个元素开始,逐个与有序部分的元素进行比较,并将其插入到相应的位置,使得插入之后的有序部分仍然有序。重复这个过程,直到整个数组都有序。
下面是对一维数组arr进行直接插入排序并输出每一趟排序结果的示例:
初始数组:
arr = [5, 3, 8, 2, 1]
第1趟排序:
有序部分:[5]
无序部分:[3, 8, 2, 1]
插入3之后:[3, 5, 8, 2, 1]
第2趟排序:
有序部分:[3, 5]
无序部分:[8, 2, 1]
插入8之后:[3, 5, 8, 2, 1]
第3趟排序:
有序部分:[3, 5, 8]
无序部分:[2, 1]
插入2之后:[2, 3, 5, 8, 1]
第4趟排序:
有序部分:[2, 3, 5, 8]
无序部分:[1]
插入1之后:[1, 2, 3, 5, 8]
最终排序结果:
arr = [1, 2, 3, 5, 8]
通过以上步骤,我们可以看到每一趟排序的结果,并且最后的数组arr已经按照升序排列。这就是直接插入排序的思路和实现过程。
阅读全文