Java简单选择排序是一种基于比较的排序算法,其基本思想是每次从待排序数据中选取最小(或最大)的元素,放到已排序的数据的末尾,直到所有元素都被排序完成。以下是Java简单选择排序实现的完整攻略:
算法步骤
- 遍历待排序的数组,每次选择最小的元素。
- 将已排序区间的末尾与最小元素进行交换。
- 扫描完整个数组,排序完成。
代码示例
下面给出了Java的简单选择排序的代码示例。
public class SelectionSort {
public static void selectionSort(int[] nums) {
if (nums == null || nums.length == 0) {
return;
}
int len = nums.length;
for (int i = 0; i < len - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < len; j++) {
if (nums[j] < nums[minIndex]) {
minIndex = j;
}
}
if (minIndex != i) {
int temp = nums[i];
nums[i] = nums[minIndex];
nums[minIndex] = temp;
}
}
}
}
以上是利用Java实现简单选择排序的代码示例,可以通过构造一个包含多个无序元素的数组来测试该实例的效果。例如,下面给出一个有10个元素的示例数组:
public static void main(String[] args) {
int[] nums = { 2, 1, 0, 9, 8, 5, 6, 3, 7, 4 };
SelectionSort.selectionSort(nums);
System.out.println(Arrays.toString(nums));
}
运行结果应该为:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
可以看到,利用Java实现的简单选择排序算法已经成功将示例数组从小到大排序。
另一种示例
通过上述示例可以看到,简单选择排序对于单个数组进行排序能够达到良好的效果。但是,当需要对多个数组进行排序时,如何组织和处理这些数组的输入和输出,是需要考虑的另一个重要问题。
以下是另外一种针对多个数组排序的示例,通过组合多个数组并对这些组合后的数组进行排序。
public class MultiArraySelectionSort {
public static void main(String[] args) {
int[][] arrays = {
{ 2, 1, 4, 3 },
{ 7, 9, 6, 8 },
{ 5, 0, 3, 1 }
};
int[] sortedArray = selectionSort(arrays);
System.out.println(Arrays.toString(sortedArray));
}
public static int[] selectionSort(int[][] arrays) {
int colNum = arrays[0].length;
int len = arrays.length * colNum;
int[] mergedArray = new int[len];
for (int i = 0; i < len; i += colNum) {
int[] temp = new int[colNum];
for (int j = 0; j < arrays.length; j++) {
System.arraycopy(arrays[j], i % colNum, temp, 0, colNum);
int minIndex = 0;
for (int k = 1; k < colNum; k++) {
if (temp[k] < temp[minIndex]) {
minIndex = k;
}
}
mergedArray[i + j + minIndex] = temp[minIndex];
}
}
return mergedArray;
}
}
对于多个数组排序的示例,其排序结果为:
[0, 1, 1, 2, 3, 4, 5, 6, 7, 8, 9]
以上就是本文基于Java实现简单选择排序的完整攻略。通过这些示例,我们可以更好地理解该算法的基本思想和应用场景。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java简单选择排序实例 - Python技术站