码迷,mamicode.com
首页 > 编程语言 > 详细

排序算法(二)选择排序 Java

时间:2021-01-26 12:42:40      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:错误   imp   final   算法   cti   index   小数   new   math   

一、测试类

import java.util.Arrays;

public class SortTest {

  private static final int L = 20;
  public static void main(String[] args) {

    int [] arr = new int[6];
    for (int i = 0; i < arr.length; i++) {
    arr[i] = (int)((Math.random()+1)*L);
    }
    System.out.println(Arrays.toString(arr));
    // new Sort().BubbleSort(arr);
    // new Sort().SelectionSort(arr);
    new Sort().InsertSort(arr);
    System.out.println(Arrays.toString(arr));
  }
}

二、排序类

/**
*
* <h1>选择排序</h1>
* <ul>
* <li> 1 每一趟直接选择最小的数,将其和前面的数交换位置
* <li> 2 假设第一个数是最小的数,标记最小数min和第一个数的下标
* <li> 3 n-1趟后,排序完毕
* </ul>
* @param arr the array
* @author linzm
* @since 1.8
*
*/
public void SelectionSort(int[] arr) {
  // 进行length-1趟
  for (int j = 0; j < arr.length-1; j++) {
  // 选择最小的数
  // 假设第一个数是最小的数,标记最小数min和第一个数的下标
  int min = arr[j];
  int minIndex = j;
  // 遍历数组,寻找最小的数,然后和arr[0]交换位置
  for (int i = j+1; i < arr.length; i++) {
    if(arr[i] < min) {
    min = arr[i];// 如果出现第一个数比arr[0]小,先标记,暂不交换
    minIndex = i;// 同时标记该最小数的小标
    }
  }
  if(minIndex != j) {
  arr[minIndex] = arr[j];
  arr[j] = min;
    }
  }
}

仅供参考,有错误还请指出!

有什么想法,评论区留言,互相指教指教。

排序算法(二)选择排序 Java

标签:错误   imp   final   算法   cti   index   小数   new   math   

原文地址:https://www.cnblogs.com/linzm14/p/14325252.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!