排序算法---插入排序

avatar
作者
猴君
阅读量:0

插入排序的思想

每一趟将一个待排序元素,按其排序码大小插入到前面已经排好序的一组元素的适当位置上,直到所有待排序元素元素全部插入为止。

插入排序的代码实现

第一轮:

j = 0 对比值:5    6>5    6,6,4    j = -1    5,6,4

第二轮:

j = 1 对比值:4    5>4    5,6,6

j = 0 对比值:4    5,5,6    j=-1    4,5,6

function insertionSort(arr) {     var i, j, key;     for (i = 1; i < arr.length; i++) {         key = arr[i];         j = i - 1;           // 将大于key的元素向后移动         while (j >= 0 && arr[j] > key) {             arr[j + 1] = arr[j];             j = j - 1;         }         // 插入key         arr[j + 1] = key;     }     return arr; }

插入排序的复杂度

时间复杂度

插入排序的平均时间复杂度为O(n^2),其中n是数组的长度。最好情况下是O(n)

空间复杂度:O(1)

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!