一、测试类SortTest

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));
  }
}

二、排序类Sort

  /**
  *
  * <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;
    }
  }
}

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

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

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/linzm14/p/14325252.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!