var arr = [23,34,3,4,23,44,333,444];进行插入排序
时间: 2023-10-07 09:14:41 浏览: 35
插入排序的基本思想是将一个元素插入到已排好序的序列中,从而得到一个新的有序序列。
具体实现步骤如下:
1. 从第二个元素开始遍历数组,将当前元素存储为key;
2. 将key与前面已排好序的元素比较,如果key比前面的元素小,则将前面的元素后移一位,直到找到key应该插入的位置;
3. 将key插入到找到的位置中;
4. 重复步骤1-3,直到遍历完整个数组。
以下是JavaScript实现:
var arr = [23,34,3,4,23,44,333,444];
for (var i = 1; i < arr.length; i++) {
var key = arr[i];
var j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}
console.log(arr); // [3, 4, 23, 23, 34, 44, 333, 444]
相关问题
插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕,封装insertionSort 函数使用插入排序对数组进行从小到大排序var = [4,8,2,5,9,1,3,,7]
可以使用以下代码实现插入排序:
```
function insertionSort(arr) {
for (var i = 1; i < arr.length; i++) {
var temp = arr[i];
var j = i - 1;
while (j >= 0 && arr[j] > temp) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = temp;
}
return arr;
}
var arr = [4, 8, 2, 5, 9, 1, 3, 7];
console.log(insertionSort(arr)); // [1, 2, 3, 4, 5, 7, 8, 9]
```
这段代码中,我们定义了一个insertionSort函数,它接受一个数组作为参数,并返回排序后的数组。在函数内部,我们使用for循环遍历整个数组,从第二个元素开始,将当前元素存储在一个临时变量temp中。然后使用while循环,从当前元素的前一个元素开始向前遍历,如果前一个元素比当前元素大,则将前一个元素后移一位,直到找到一个比当前元素小的位置,或者已经遍历到数组的第一个元素。然后将当前元素插入到该位置后面,完成一次插入排序。最终得到从小到大排序后的数组[1, 2, 3, 4, 5, 7, 8, 9]。
2) 插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕,封装insertionSort 函数使用插入排序对数组进行从小到大排序var = [4,8,2,5,9,1,3,,7] 3) 分析插入排序事件复杂度
好的,下面是实现插入排序的代码:
```javascript
function insertionSort(arr) {
for (let i = 1; i < arr.length; i++) {
const current = arr[i];
let j = i - 1;
while (j >= 0 && arr[j] > current) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = current;
}
return arr;
}
const arr = [4, 8, 2, 5, 9, 1, 3, 7];
console.log(insertionSort(arr)); // [ 1, 2, 3, 4, 5, 7, 8, 9 ]
```
插入排序的时间复杂度为 O(n^2),因为它需要对数组中的每个元素进行比较和移动。虽然时间复杂度很高,但是在处理小规模数据时,插入排序的效率比较高。此外,在序列几乎有序的情况下,插入排序的效率也相当高。