用 Java 写一个选择排序
时间: 2024-05-24 11:11:37 浏览: 43
以下是用 Java 写的选择排序:
public class SelectionSort {
public static void main(String[] args) {
int[] arr = {64, 25, 12, 22, 11};
int n = arr.length;
// 循环遍历数组中的每个元素
for (int i = 0; i < n-1; i++) {
// 找到最小元素的索引
int min_idx = i;
for (int j = i+1; j < n; j++)
if (arr[j] < arr[min_idx])
min_idx = j;
// 交换找到的最小元素和当前元素
int temp = arr[min_idx];
arr[min_idx] = arr[i];
arr[i] = temp;
}
// 打印排序后的数组
System.out.println("排序后的数组为:");
for (int i=0; i<n; ++i)
System.out.print(arr[i] + " ");
}
}
输出结果:
排序后的数组为:
11 12 22 25 64
相关问题
用 java 写一个选择排序
### 回答1:
以下是 Java 语言实现选择排序的示例代码:
```java
public class SelectionSort {
public static void main(String[] args) {
int[] arr = {6, 3, 8, 2, 9, 1};
selectionSort(arr);
System.out.println(Arrays.toString(arr));
}
public static void selectionSort(int[] arr) {
int len = arr.length;
for (int i = 0; i < len - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < len; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
if (minIndex != i) {
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}
}
```
在以上代码中,`selectionSort` 方法实现了选择排序的核心算法,使用两层循环遍历未排序部分的数组,找到最小的元素并将其交换到已排序部分的末尾。主函数中的代码创建了一个待排序的数组,调用 `selectionSort` 方法对其进行排序,并输出排序后的结果。
### 回答2:
选择排序是一种简单直观的排序算法,它的基本思想是每一次从待排序的数据元素中选出最小(或最大)的一个元素,放在序列的起始位置,再从剩余未排序的元素中继续寻找最小(或最大)的元素,放在已排序序列的末尾。以此类推,直到全部待排序的数据元素排完为止。
以下是用Java语言实现选择排序的代码示例:
```java
public class SelectionSort {
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[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
}
public static void main(String[] args) {
int[] arr = {64, 25, 12, 22, 11};
selectionSort(arr);
System.out.println("排序后的数组:");
for (int i : arr) {
System.out.print(i + " ");
}
}
}
```
以上代码中,我们定义了一个`selectionSort`方法,接受一个整型数组作为参数。在方法中,我们使用两层循环,外层循环从数组的第一个元素开始,内层循环在未排序部分中查找到最小的元素的索引,然后将最小的元素与当前位置交换。通过不断重复这个过程,直到数组中的元素全部排好序为止。最后,我们在主方法中调用`selectionSort`方法,并输出排序后的数组。
运行上述代码,得到的输出结果为:`排序后的数组:11 12 22 25 64`,即将原始数组`[64, 25, 12, 22, 11]`按升序排列。
### 回答3:
选择排序是一种简单且直观的排序算法,它的基本思想是每次从待排序的元素中选择最小(或最大)的元素,放到已排序序列的末尾。下面是用Java编写的选择排序算法:
```java
public class SelectionSort {
public static void selectionSort(int[] arr) {
int len = arr.length;
for (int i = 0; i < len - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < len; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
// 交换最小值和当前位置的元素
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
public static void main(String[] args) {
int[] arr = {5, 2, 8, 9, 1};
selectionSort(arr);
System.out.println("排序结果:");
for (int num : arr) {
System.out.print(num + " ");
}
}
}
```
在这个示例中,我们定义了一个`selectionSort`方法,它接收一个整数数组作为参数。首先,我们确定数组的长度。然后,使用两个嵌套循环来遍历数组。在外层循环中,我们依次选择每个位置作为已排序序列的末尾。在内层循环中,我们从当前位置的下一个位置开始,找到待排序元素中的最小值,并记录其索引。一旦内层循环结束,我们就找到了未排序序列中的最小值,并将其与当前位置的元素进行交换。这样每次外层循环结束后,已排序序列的末尾就会多一个最小值。最后,我们输出排序后的数组。
以上就是用Java编写选择排序的一个示例。选择排序的时间复杂度为O(n^2),在处理小规模数据时使用比较合适。
用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[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
}
```
这个代码实现了一个简单的选择排序,它接受一个整型数组作为输入,并对该数组进行排序。选择排序的基本思路是在每一轮选择中找到未排序的部分中的最小值,并将其移动到数组的开头。