java中插入排序
时间: 2023-07-02 19:14:33 浏览: 49
Java 中插入排序的实现方式与其他语言类似,也是基于比较和交换元素的思路。以下是 Java 实现插入排序的示例代码:
```java
public class InsertionSort {
public static void insertionSort(int[] arr) {
int n = arr.length;
for (int i = 1; i < n; i++) {
int key = arr[i];
int j = i - 1;
// Move elements of arr[0..i-1], that are greater than key, to one position ahead of their current position
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
}
}
```
在这个示例代码中,`arr` 是待排序的一维数组。`insertionSort` 函数实现了插入排序的算法。该算法使用了一个 `key` 变量来保存当前待排序的元素,然后在已排序的序列中从后往前扫描,找到相应的位置并插入。
相关问题
Java中插入排序实现
以下是Java中插入排序的实现:
```java
public static void insertionSort(int[] arr) {
int n = arr.length;
for (int i = 1; i < n; ++i) {
int key = arr[i];
int j = i - 1;
// Move elements of arr[0..i-1], that are
// greater than key, to one position ahead
// of their current position
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
}
```
该算法的时间复杂度为O(n^2),其中n为待排序数组的长度。
java中插入排序代码演示
以下是Java中插入排序算法的代码演示:
```java
public class InsertionSort {
public static void insertionSort(int[] arr) {
int n = arr.length;
for (int i = 1; i < n; ++i) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
}
public static void main(String[] args) {
int[] arr = {5, 2, 8, 12, 1, 6, 3}; // 待排序的数组
System.out.println("原始数组:");
for (int num : arr) {
System.out.print(num + " ");
}
insertionSort(arr);
System.out.println("\n排序后的数组:");
for (int num : arr) {
System.out.print(num + " ");
}
}
}
```
插入排序算法的基本思想是将数组分为已排序和未排序两部分,初始时已排序部分只有一个元素(即第一个元素),然后逐步将未排序部分中的元素插入到已排序部分的适当位置,直到所有元素都被插入完毕。以上代码演示了如何使用插入排序对一个整数数组进行排序。