遗传算法_Java中带有算法的选择排序示例

遗传算法

遗传算法

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

遗传算法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值