请使用Java写出选择排序算法对数组进行排序。
时间: 2023-03-24 15:03:16 浏览: 109
选择排序算法的Java实现如下:
public static void selectionSort(int[] arr) {
int n = arr.length;
for (int i = ; 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;
}
}
这个算法的时间复杂度为O(n^2),不适用于大规模数据的排序。
相关问题
写一个java程序实现选择排序对数组进行排序
选择排序是一种简单直观的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。以下是使用Java实现选择排序的一个例子:
```java
public class SelectionSort {
public static void main(String[] args) {
int[] array = {5, 3, 8, 6, 2}; // 待排序的整数数组
selectionSort(array);
System.out.println("Sorted Array: ");
for (int i : array) {
System.out.print(i + " ");
}
}
// 选择排序函数
public static void selectionSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
// 找到剩余部分的最小值下标
int minIndex = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
// 将找到的最小值与当前位置交换
if (minIndex != i) {
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}
}
```
在这个程序中,`selectionSort`函数会遍历数组,每次找出剩余部分中最小的元素,并将其放到已排序的部分的开头。最后,整个数组就会按照升序排列。
用java写出ranksort的算法代码
Ranksort是一种非比较排序算法,它首先对每个元素分配一个初始排名,然后按照排名对整个数组进行重新排列。下面是一个简单的Java实现Ranksort的例子:
```java
public class RankSort {
// 将值转换为其排名
private static int rank(int value, int[] values) {
int count = 0;
for (int v : values) {
if (v <= value)
count++;
}
return count;
}
// Ranksort 主函数
public static void ranksort(int[] array) {
int n = array.length;
int[] ranks = new int[n];
// 计算每个元素的排名
for (int i = 0; i < n; i++) {
ranks[i] = rank(array[i], array);
}
// 将元素按排名重新放置
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (ranks[j] > ranks[j + 1]) { // 如果当前排名大于下一个元素的排名
// 交换元素和其排名
int tempRank = ranks[j];
ranks[j] = ranks[j + 1];
ranks[j + 1] = tempRank;
int tempValue = array[j];
array[j] = array[j + 1];
array[j + 1] = tempValue;
}
}
}
}
// 测试示例
public static void main(String[] args) {
int[] arr = {9, 4, 6, 5, 8, 7};
System.out.println("Before sorting: " + Arrays.toString(arr));
ranksort(arr);
System.out.println("After sorting: " + Arrays.toString(arr));
}
}
```
在这个例子中,`rank()` 函数计算给定值在数组中的排名,而 `ranksort()` 函数则利用这个排名信息来对数组进行排序。
阅读全文