算法:选择排序

来源:互联网 发布:淘宝热带鱼活体 编辑:程序博客网 时间:2024/06/09 04:10

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 330 11 22 33 44 55 66 77 88 99


Reference:

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






原创粉丝点击