![遗传算法](https://i-blog.csdnimg.cn/blog_migrate/b97c43d5b760e5f67dec314f180078cc.png)
遗传算法
Java中选择排序技术的快速实用编程指南,以及算法和示例。
选择以Java排序
在本教程中,我们将学习另一种将辅助空间最小化的分类技术。 到目前为止,我们已经讨论了以下内容
冒泡排序的实现优化冒泡排序的实现插入排序的实现几个Java示例程序
在计算机科学中,选择排序是一种排序算法,选择排序通常从左到右起作用。 它找到最小的元素索引并与当前索引的元素交换。
特别是就地比较排序。 它具有O(n2)时间复杂度,并且比插入排序最差,并且比冒泡排序更好。我们将讨论给定输入数组的升序和降序排序。
选择排序模拟示例:
选择排序动画。 红色是当前分钟。 黄色为已排序列表。 蓝色是当前项目
算法:
Outer Loop from index i 0 to length - 1 Outer Loop from index i
minValueIndex = i;
Inner loop from index j=i to length - 1 Inner loop from index j=i to length -
if (A[minValueIndex] < A[j])
minValueIndex = j;
swap (A[minValueIndex], A[i])
End Inner loop
End Outer loop
升序示例程序:
包com.adeepdrive.sorting;
public class SelectionSort {
// Java - W3schools
public static void main(String[] args) {
int [] inputArray = { 5 , 9 , 3 , 1 , 7 };
int length = inputArray.length;
int minValueIndex;
System.out.print( "Before sorting input array: " );
printInputArray(inputArray);
// Outer Loop
for ( int i = 0 ; i < length; i++) {
minValueIndex = i;
// Inner Loop
for ( int j = i; j < length; j++) {
if (inputArray[minValueIndex] > inputArray[j]) {
minValueIndex = j;
}
}
int temp = inputArray[minValueIndex];
inputArray[minValueIndex] = inputArray[i];
inputArray[i] = temp;
System.out.print( "\nIterate " + i + " : " );
printInputArray(inputArray);
}
System.out.print( "\nAfter sorting input array: " );
printInputArray(inputArray);
}
public static void printInputArray( int [] values) {
for ( int value : values) {
System.out.print(value + " " );
}
}
}
在对输入数组进行排序之前:5 9 3 1 7迭代0:1 9 3 5 7重复1:1 3 9 5 7重复2:1 3 5 9 7重复3:1 3 5 7 9迭代4:1 3 5 7 9对输入数组进行排序后:1 3 5 7 9
降序示例程序:
在上面的程序中,只需用以下几行更改黄色背景中的高亮显示的行。
if (inputArray[minValueIndex] < inputArray[j]) {
输出:
在对输入数组进行排序之前:5 9 3 1 7迭代0:9 5 3 1 7迭代1:9 7 3 1 5迭代2:9 7 5 1 3迭代3:9 7 5 3 1迭代4:9 7 5 3 1排序输入数组后:9 7 5 3 1
有关Core Java的其他文章
翻译自: https://www.javacodegeeks.com/2020/11/selection-sort-in-java-with-algorithm-example.html
遗传算法