选择排序用Java举例并备注
时间: 2023-07-02 19:16:12 浏览: 79
好的,以下是一个简单的选择排序 Java 代码实现及注释:
```java
public static void selectionSort(int[] arr) {
int n = arr.length;
// 依次选出最小值并将其放置在正确位置
for (int i = 0; i < n; i++) {
int minIndex = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
swap(arr, i, minIndex);
}
}
// 交换数组中两个元素的位置
private static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
```
这段代码实现了一个选择排序算法,使用了一个外层循环用于遍历整个数组,内层循环则用于选出当前未排序元素中的最小值,并将其与当前位置交换。时间复杂度为 O(n^2),空间复杂度为 O(1)。
相关问题
冒泡排序用Java举例并备注
好的,下面是冒泡排序的Java代码,附有注释解释每个步骤的含义:
```java
public static void bubbleSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) { // 外层循环控制排序轮数,n个数需要n-1轮
for (int j = 0; j < n - i - 1; j++) { // 内层循环控制每轮比较的次数
if (arr[j] > arr[j + 1]) { // 如果前面的数比后面的数大,就交换它们的位置
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
```
这里的参数`arr`是一个整型数组,表示需要排序的数列。代码首先定义了一个`n`变量表示`arr`数组的长度,然后通过两个`for`循环实现了冒泡排序的过程。外层循环控制排序的轮数,内层循环控制每轮比较的次数。如果前面的数比后面的数大,就交换它们的位置,最终得到一个有序的数列。
插入排序教学,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--;
}
arr[j + 1] = key; // 插入元素
}
}
public static void main(String[] args) {
int[] arr = {6, 5, 3, 1, 8, 7, 2, 4}; // 待排序数组
insertionSort(arr); // 调用插入排序算法
for (int i : arr) { // 打印排序结果
System.out.print(i + " ");
}
}
}
```
代码中,insertionSort方法是实现插入排序的核心函数,它接受一个整型数组作为输入,并对其进行排序。插入排序的核心思想是将待排序的元素插入到已排序的数组中,因此我们需要维护一个已排序的区间,从第二个元素开始插入。具体实现过程如下:
1. 从第二个元素开始,记录当前待插入的元素key;
2. 定义已排序区间的最后一个元素下标为j,从后往前遍历已排序区间,如果有元素大于key,则将该元素后移一位,直到找到一个小于或等于key的位置;
3. 在该位置后面插入key。
最后,在main函数中调用insertionSort函数进行排序,并打印排序结果。
希望这个例子能够帮助你理解插入排序。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)