算法思路:
- 从第一个元素开始,该元素可以认为已经被排序
- 取出下一个元素,在已经排序的元素序列中从后向前扫描
- 如果该元素(已排序)大于新元素,将该元素移到下一位置
- 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
- 将新元素插入到该位置中
- 重复步骤2
算法功能实现:
public static <T extends Comparable> T[] insertSort(final T[] targetArrays) {
T[] targetArraysBak = targetArrays.clone();
if (targetArraysBak.length == 1) return targetArraysBak;
for (int i = 1; i < targetArraysBak.length; i++) {
T markedPlayer = targetArraysBak[i];
for (int j = i; j > 0 && markedPlayer.compareTo(targetArraysBak[j - 1]) < 0; j--) {
targetArraysBak[j] = targetArraysBak[j - 1];
targetArraysBak[j - 1] = markedPlayer;
}
}
return targetArraysBak;
}
public static void main(String...args) {
Integer[] targetArrays = {14, 7, 8, 2, 11, 9};
System.out.println(Arrays.toString(insertSort(targetArrays)));
}
分享到:
相关推荐
for(int i=0;i;i++) { String temp = strArray[i]; while(i>0 && (Integer.parseInt(temp) > Integer.parseInt(strArray[i-1]))) { strArray[i] = strArray[i-1]; i--; } ... }
在B站讲插入排序的笔记,需要的同学可以免费下载
常见的四种排序算法是:简单选择排序、冒泡排序、插入排序和快速排序。其中的快速排序的优势明显,一般使用递归方式实现,但遇到数据量大的情况则无法适用。实际工程中一般使用“非递归”方式实现。...
1. 直接插入排序(Direct Insertion Sort) 直接插入排序的基本思想是,每次将一个待排序的记录,按其关键字大小插入到前面已经排序的子序列中的适当位置,直到全部记录插入完成为止。在Java中,直接插入排序的实现...
insert_sort.cpp
插入排序(Insert Sort) 插入排序是一种简单直观的比较排序算法。它的工作原理是通过构建有序序列,对于未排序的数据,在已排序序列中从后向前扫描,找到相应位置并插入。 **核心思想:** - 将数组分为已排序...
def insert_sort(arr): for i in range(1, len(arr)): key = arr[i] j = i - 1 while j >= 0 and key [j]: arr[j + 1] = arr[j] j -= 1 arr[j + 1] = key ``` 在这个代码中,`arr`是待排序的数组。外层循环...
插入排序 依次拿到每个元素,每拿到一个就比较这个元素和前面的所有元素的大小, 然后根据他们的大小值排好顺序,知道拿到最后一个元素,并将其位置排好后,结束整个排序过程
根据给定的文件信息,我们将深入探讨Java中的各种排序算法,包括插入排序(Insert Sort)、冒泡排序(Bubble Sort)、选择排序(Selection Sort)、希尔排序(Shell Sort)以及快速排序(Quick Sort)。这些排序方法...
这些排序算法包括插入排序(Insert Sort)、冒泡排序(Bubble Sort)、选择排序(Selection Sort)以及希尔排序(Shell Sort)。此外,还提到了快速排序(Quick Sort),但示例代码不完整。 ### 插入排序(Insert ...
根据提供的文件信息,我们可以看到这段代码包含了四种不同的Java排序算法:插入排序(Insert Sort)、冒泡排序(Bubble Sort)、选择排序(Selection Sort)以及希尔排序(Shell Sort)。下面将详细介绍这些算法及其...
这些算法包括插入排序(Insert Sort)、冒泡排序(Bubble Sort)、选择排序(Selection Sort)以及希尔排序(Shell Sort)。接下来,我们将逐一分析每种排序算法的工作原理、特点及其实现细节。 ### 插入排序...
插入排序(Insert Sort) 插入排序是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常使用in-place排序(即只...
这些算法包括插入排序(Insert Sort)、冒泡排序(Bubble Sort)、选择排序(Selection Sort)以及希尔排序(Shell Sort)。接下来,我们将逐一分析每种排序算法的具体实现,并讨论它们的特点、效率以及适用场景。 ...
在《java中的算法.pdf》文档中,我们看到了Java语言实现的几种基本排序算法,包括插入排序(Insert Sort)、冒泡排序(Bubble Sort)、选择排序(Selection Sort)、希尔排序(Shell Sort)和快速排序(Quick Sort)...
根据提供的文件信息,本文将详细介绍如何使用Java语言来实现几种常见的排序算法,包括插入排序(Insert Sort)、冒泡排序(Bubble Sort)、选择排序(Selection Sort)以及希尔排序(Shell Sort)。这些排序算法在...
注意前面有“Insert sort:”或“Natural merge sort:”或“Quick sort:”等输出前缀,格式以上文程序为准。 输入样例 9 3 5 2 1 7 8 1 5 9 8 5 2 1 7 3 1 5 9 5 9 2 1 7 8 1 3 5 输出样例 Insert sort: 1 1 2 ...
文档中所列的排序算法包括插入排序(Insert Sort)、冒泡排序(Bubble Sort)、选择排序(Selection Sort)、希尔排序(Shell Sort)、快速排序(Quick Sort)、改进的快速排序(Improved Quick Sort)、归并排序...
一、插入排序(Insert Sort) 插入排序是一种简单的排序算法,它的工作原理是将待排序的数组分成两部分:已经排好序的部分和未排好序的部分。每次从未排好序的部分中取出一个元素,并将其插入到已经排好序的部分中...
根据提供的文件信息,我们可以总结出该文档主要涉及了五种基于Java实现的排序算法:插入排序(Insert Sort)、冒泡排序(Bubble Sort)、选择排序(Selection Sort)、希尔排序(Shell Sort)以及快速排序(Quick ...