zoukankan      html  css  js  c++  java
  • 选择排序

    1 算法步骤

      1)首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置;

      2)再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾;

      3)重复第二步,直到所有元素均排序完毕。

    2 动画演示

      

    3 参考代码 

    package com.tcxpz.selection;
    /**
     * 直接选择排序
     * 第1趟从R[0]~R[n-1]中选取最小值,与R[0]交换;
     * 第2趟从R[1]~R[n-1]中选取最小值,与R[1]交换;
     * 第i趟从R[i-1]~R[n-1]中选取最小值,与R[i-1]交换;
     * 
     * 4 2 3 6 5->2 4 3 6 5->2 3 4 6 5->2 3 4 6 5->2 3 4 5 6
     * @author jgp QQ:1072218420
     *
     */
    public class SelectionSort {
        public static void main(String[] args) {
            int[] arr = new int[]{4,2,3,6,5};
            System.out.print("排序前:");
            for(int num:arr)
                System.out.print(num+" ");
            System.out.println();
            //进行排序
            int[] bubble_arr = sort(arr);
            System.out.print("排序后:");
            for(int num:bubble_arr)
                System.out.print(num+" ");
        }
        private static int[] sort(int[] arr) {
            for(int i=0;i<arr.length-1;i++){
                int min = i;
                for(int j=i+1;j<arr.length;j++){
                    if(arr[j]<arr[min]){
                        min = j;
                    }
                }
                if(i!=min){
                    int temp = arr[i];
                    arr[i] = arr[min];
                    arr[min] = temp;
                }
            }
            return arr;
        }
    }
  • 相关阅读:
    K好数
    最大最小公倍数
    十六进制转十进制
    利用malloc定义数组
    01字串
    ubuntu 14.04 下jdk和sdk+eclipse 的配置
    Mysql3
    求最大连续子串
    UC笔试
    java实现随机洗牌算法
  • 原文地址:https://www.cnblogs.com/tcxpz/p/10588103.html
Copyright © 2011-2022 走看看