【十大经典排序算法】java实现--选择排序(2)

选择排序概述

  • 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
  • 再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
  • 重复第二步,直到所有元素均排序完毕。

选择排序java代码实现

	public class ArrayDemo {
        /*
        选择排序:
            一种排序的方式,选出最值,放在首位,在循环剩下的,重复
       */
        public static void main(String[] args) {
            //定义一个数组
            int[] arr = {24, 69, 80, 57, 13};
            System.out.println("排序前:" + arrayToString(arr));
            // 总共要经过 N-1 轮比较
            for (int i = 0; i < arr.length - 1; i++) {
                int min = i;
                // 每轮需要比较的次数 N-i
                for (int j = i + 1; j < arr.length; j++) {
                    if (arr[j] < arr[min]) {
                        // 记录目前能找到的最小值元素的下标
                        min = j;
                    }
                }
                // 将找到的最小值和i位置所在的值进行交换
                if (i != min) {
                    int tmp = arr[i];
                    arr[i] = arr[min];
                    arr[min] = tmp;
                }
            }
            System.out.println("排序后:" + arrayToString(arr));
        }
        //把数组中的元素按照指定的规则组成一个字符串:[元素1, 元素2, ...]
        public static String arrayToString(int[] arr) {
            StringBuilder sb = new StringBuilder();
            sb.append("[");
            for (int i = 0; i < arr.length; i++) {
                if (i == arr.length - 1) {
                    sb.append(arr[i]);
                } else {
                    sb.append(arr[i]).append(", ");
                }
            }
            sb.append("]");
            String s = sb.toString();
            return s;
        }
    }

输出结果
在这里插入图片描述

发布了34 篇原创文章 · 获赞 14 · 访问量 1568

猜你喜欢

转载自blog.csdn.net/Wan_Yuan/article/details/104648320
今日推荐