java数组的选择排序
时间: 2023-12-14 11:30:12 浏览: 37
Java数组的选择排序是一种简单的排序算法,其基本思想是每次从未排序的元素中选择最小的元素,放到已排序的末尾。具体实现如下:
```java
public static void selectionSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
```
相关问题
java数组选择排序
Java数组选择排序是一种基于比较的排序算法,其基本思想是通过不断选择最小的元素并将其放置到已排序部分的末尾,直到整个数组排序完成。
选择排序的实现可以通过两层循环来完成。外层循环控制轮数,内层循环用来比较当前元素与之后的元素,并进行交换位置。
以下是选择排序的代码实现:
```java
int[] nums = {2, 5, 7, 4, 1};
for (int i = 0; i < nums.length - 1; i++) {
int minIndex = i; // 记录最小元素的索引
for (int j = i + 1; j < nums.length; j++) {
if (nums[j < nums[minIndex]) {
minIndex = j; // 更新最小元素的索引
}
}
// 交换位置
int temp = nums[i];
nums[i = nums[minIndex];
nums[minIndex = temp;
}
System.out.println(Arrays.toString(nums));
```
在这段代码中,我们使用两个循环来遍历数组。外层循环控制轮数,内层循环从当前轮数开始,找到最小的元素的索引。然后,将最小元素与当前轮数的元素交换位置。重复这个过程直到整个数组排序完成。
选择排序的时间复杂度为O(n^2),其中n是数组的长度。尽管选择排序的时间复杂度比较高,但由于其实现简单,对于小型数组或部分有序的数组,选择排序仍然是一个有效的排序算法。
java数组插入排序
Java数组插入排序是一种简单的排序算法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增加1的有序表。具体实现过程如下:
1. 从第一个元素开始,该元素可以认为已经被排序;
2. 取出下一个元素,在已经排序的元素序列中从后向前扫描;
3. 如果该元素(已排序)大于新元素,将该元素移到下一位置;
4. 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;
5. 将新元素插入到该位置后;
6. 重复步骤2~5。
下面是Java数组插入排序的代码实现:
```
public static void insertionSort(int[] arr) {
int len = arr.length;
for (int i = 1; i < len; i++) {
int temp = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > temp) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = temp;
}
}
```
这段代码中,我们首先定义了一个长度为len的数组arr,然后使用for循环遍历数组,从第二个元素开始,将其插入到已经排好序的数组中。在循环中,我们使用temp变量来保存当前需要插入的元素,然后使用while循环将其插入到已经排好序的数组中。