今日计划-2024年7月22日

今日计划-2024年7月22日

下载几部电影

《肖申克的救赎》
《阿甘正传》
《海上钢琴师》

下载几首歌曲

下载几部书籍

学习几个算法

插入排序

插入排序示例

概念

Z插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。

算法描述

一般来说,插入排序都采用in-place在数组上实现。具体如下:

第一步: 从第一个元素开始,该元素可以认为已经被排序;

第二步: 取出下一个元素,在已经排序的元素序列中从后向前扫描;

第三步: 如果该元素(已排序)大于新元素,将该元素移到下一位置;

第四步: 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;

第五步: 将新元素插入到该位置后。
 
重复第二步到第五步。

算法示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function insertionSort(arr) {
if (arr == null || arr.length < 2) {
return arr;
}
for (let i = 1; i < arr.length; i++) {
for (let j = i - 1; j >= 0 && arr[j] > arr[j + 1]; j--) {
let temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
return arr;
}
var arr = [3, 4, 2, 1, 6, 7, 8, 4];
console.log(arr); // [3, 4, 2, 1, 6, 7, 8, 4]
insertionSort(arr);
console.log(arr); // [1, 2, 3, 4, 4, 6, 7, 8]

相关语法

for 循环语句

    for (表达式1; 表达式2; 表达式3)
    {
        语句;
    }

执行过程

    求解表达式1。
    求解表达式2。若其值为真,则执行 for 语句中指定的内嵌语句,然后执行第3步;若表达式2值为假,则结束循环,转到第5步。
    求解表达式3。
    转回上面第2步继续执行。
    循环结束,执行 for 语句下面的语句。

for循环嵌套

    在 Java 中,for 循环可以嵌套使用。这意味着在一个 for 循环内部可以再定义一个 for 循环。
    这样做的好处是,当我们需要在循环内部重复执行多次操作时,可以使用嵌套的 for 循环来实现。
    举个例子,假设我们要在控制台输出从 1 到 9 的乘法表,我们可以使用两个嵌套的 for 循环来实现:
    for (int i = 1; i <= 9; i++) {
        for (int j = 1; j <= i; j++) {
            System.out.print(j + "*" + i + "=" + i * j + " ");
        }
    System.out.println();
    }
    在这段代码中,我们定义了两个 for 循环,其中外层循环控制行数,内层循环控制列数。
    在内层循环中,我们输出每一行的每一个数字,并在每一行结束后换行。
    这样,我们就使用了 for 循环的嵌套来实现了乘法表的输出。

for循环的嵌套使用方法:

    在外层 for 循环中定义内层 for 循环。
    在内层 for 循环中,重复执行所需的操作。
    在内层 for 循环结束后,继续执行外层 for 循环。

学习sql Server


今日计划-2024年7月22日
http://example.com/2024/07/22/今日计划-2024年7月22日/
Beitragsautor
XiangHui
Veröffentlicht am
July 22, 2024
Urheberrechtshinweis