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

    1、核心算法

    /**
     * 核心算法
     */
    class ArraySel{
    
        private long[] a;//定义排序数组
        private int nElems;//定义数组大小
    
        public ArraySel(int max){
            a[nElems] = value;
            nElems ++;
        }
    
        /**
         * 打印
         */
        public void display(){
            for(int j = 0; j< nElems; j++){
                System.out.print(a[j] + " ");
            }
            System.out.println(" ");
        }
         
        /**
         * 排序
         */
    	public void selectionSort(){// 业务逻辑:将最小的数交换到最小下标。自增后,在讨论剩下的最小数,并交换到当前范围的最小坐标, 
    		int out, in, min; 
    		for(out = 0; out<nElems-1; out ++){ //从第一个数组开始 
    			min = out; //假设最小的数为第一个,并记下其下标 
    			for(in = out +1; in<nElems; in++){ //遍历比最小数以后的数组 
    				if(a[in] < a[min]){ //当后面的数组存在比假设的最小数要小的时候 
    				min = in; //记下虽小的坐标 } swap(out, min);//交换 
    			} 
    		} 
    	}
         
        /**
         * 交换
         */
        private void swap(int one, int two){
            long temp = a[one];
            a[one] = a[two];
            a[two] = temp;
        }
    }



    2、运行并试执行:

    class SelectSortApp{
    
        public static void main(String[] args){
            int maxSize = 100;
            ArraySel arr;
            arr = new ArrauSel(maxSize);
    		//插入数据
            arr.insert(77);
            arr.insert(99);
            arr.insert(44);
            arr.insert(55);
            arr.insert(22);
            arr.insert(88);
            arr.insert(11);
            arr.insert(00);
            arr.insert(66);
            arr.insert(33);
    
            arr.display();//打印数据-排序前
            arr.selectionSort();//排序
            arr.display();//打印数据-排序后
        }
    }

    3、运行结果:

    77 99 44 55 22 88 11 0 66 33
    0 11 22 33 44 55 66 77 88 99

    Reference:

    [1] Robert Lalore(著) 计晓云,赵研,曾希,狄小菡(译), Java数据结构和算法(第二版),中国电力出版社,2004 :63-65

  • 相关阅读:
    师弟大喜之日,送上一幅对联 求横批
    漫画:Google 走了
    产品研发流程改进
    Outlook2010 Bug 一则
    Android 手机用户版本比例
    CDMA 短信中心号码
    UIM卡 PIN 码特点
    [Accessibility] Missing contentDescription attribute on image
    java打印函数的调用堆栈
    android中解析Json
  • 原文地址:https://www.cnblogs.com/ryelqy/p/10104141.html
Copyright © 2011-2022 走看看