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

    package cn.xingxing.datastructure.sort;
    
    import java.util.Scanner;
    /**
     *<pre> 从待排序的数据元素集合中选取关键字最小的的数据元素并将它与原始数据元素集合中的第一个数据元素交换位置;
     * 然后从不包过第一个位置的数据元素集合中选取关键字最小的数据元素并将它与原始数据集合中的第二个数据元素交换位置;
     * 如此重复,直到数据元素集合中只剩下一个数据元素为止
     * 初始关键字排序 64 5 7 89 6 24
     * 第一次排序: [5] 64 7 89 6 24
     * 第2次排序: [5 6] 64 7 89 24
     * 第3次排序: [5 6 7] 24 64 89
     * 第4次排序:[5 6 7 24] 64 89
     *  第4次排序:[5 6 7 24 64] 89
     *  第4次排序:[5 6 7 24] 64 89]
     *  </pre>
     * @author duanxingxing
     *
     */
    public class SelectSort {
    
    	public static void selectSort(int[] a) {
    		for (int i = 0; i < a.length - 1; i++) {
    			int temp = a[i];
    			int small = i;
    			/**
    			 *  j < a.length 因为要比较到最后一个元素
    			 */
    			for (int j = i + 1; j < a.length; j++) {
    				if (a[small] > a[j])
    					small = j;
    			}
    			//如果是最后一个元素就不用排序(省得自己和自己交换)
    			if (small != i) {
    				a[i] = a[small];
    				a[small] = temp;
    			}
    		}
    		for (int b : a) {
    			System.out.println(b);
    		}
    	}
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// 从键盘读入数据
    		Scanner sc = new Scanner(System.in);
    
    		int[] a = new int[6];
    		int i = 0;
    
    		System.out.println("请输入要排序的int整数!");
    
    		while (sc.hasNext()) {
    			a[i] = sc.nextInt();
    			i++;
    			if (i >= 6)
    				break;
    		}
    		sc.close();
    
    		selectSort(a);
    	}
    
    }
    

  • 相关阅读:
    输入年月日,输出这一天是这一年的多少天
    判断体重是否标准 男标准=身高-100±3 女标准=身高-110±3
    if 条件运算符
    24小时换算成12小时&&判断正负数
    运算符(编程)
    定义变量
    基础知识
    java线程阻塞中断与LockSupport使用介绍(转)
    01背包问题--动态规划解法(2)(转载)
    01背包问题--动态规划解法
  • 原文地址:https://www.cnblogs.com/duanxingxing/p/6550636.html
Copyright © 2011-2022 走看看