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

选择排序

时间:2019-03-31 11:09:56      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:选择   i++   author   ack   for   static   str   sys   select   

选择排序
package com.zgz;

/**
 * 选择排序
 * @author guozhenZhao
 * @date 2019年3月31日
 */
public class SelectionSort {

    public static void main(String[] args) {
        int[] arr = {2,3,5,1,9,6,8,7,4};

        //每次遍历同时找到最大值和最小值所在的位置
        for(int i=0; i<arr.length/2; i++) {
            int minPos = i;
            int maxPos = arr.length-1-i;
            for(int j=i+1; j<arr.length; j++) {
                if(arr[minPos]>arr[j]) {
                    minPos = j;
                }
                if(arr[maxPos]<arr[arr.length-1-j]) {
                    maxPos = j ;
                }
            }

//          System.out.println("minPos: "+minPos);
//          System.out.println("maxPos: "+maxPos);
            //交换位置
            swap(arr, i, minPos);
            swap(arr, arr.length-1-i, maxPos);
//          print(arr);
        }

        //打印
        print(arr);
    }

    static void swap(int[] arr, int i, int j) {
        int temp = arr[j];
        arr[j] = arr[i];
        arr[i]= temp;
    }

    static void print(int[] arr) {
        for(int i=0; i<arr.length; i++) {
            System.out.print(arr[i]+" ");
        }
        System.out.println();
    }

}

选择排序

标签:选择   i++   author   ack   for   static   str   sys   select   

原文地址:https://blog.51cto.com/13416247/2371893

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