选择排序

来源:互联网 发布:淘宝市场行情标准版 编辑:程序博客网 时间:2024/06/05 15:28

进行选择排序,是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完)

1.记录第一个元素位置,并与其右边的每个元素挨个比较大小;

2.如果右边的元素小,则将记录的位置换成小元素位置;

3.与右边的所有元素比较完成后,记录的元素位置是所有元素中最小元素位置;

4.将最小元素与第一位置元素交换。

5.按照上述步骤,依次对后续位置元素操作,完成所有元素排序。

外部嵌套控制排好序元素边界,

min记录起始位置,

内部嵌套进行比较,更新位置

package com.zcl.selecteSort;public class ArraySel {    private long[] a;    private int nElems;        public ArraySel(int max) {        this.a = new long[max];        this.nElems = 0;    }        public void insert(long value) {        a[nElems] = value;        nElems++;    }        public void display(){        for(int j=0;j<this.nElems;j++){            System.out.print(a[j] + " ");        }    }    public void selectSort(){        int out,in,min;        for(out=0;out<this.nElems-1;out++){        min = out;        for(in=out+1;in<this.nElems;in++){        if(a[in]<a[min]){        min = in;        }        }        if(out!=min){        swap(out,min);        }        }    }        private void swap(int one,int two) {        long tem = a[one];        a[one] = a[two];        a[two] = tem;    }        public static void main(String[] args) {        int maxSize = 100;        ArraySel arr = new ArraySel(maxSize);                arr.insert(77);        arr.insert(88);        arr.insert(33);        arr.insert(11);        arr.insert(99);        arr.insert(66);        arr.insert(22);        arr.insert(44);        arr.insert(55);                arr.display();        System.out.println();        arr.selectSort();                arr.display();    }}


0 0
原创粉丝点击