选择排序

选择排序:

元素个数:n

外层循环:0<=out<=n-2,循环到倒数第二个元素

内层循环:out+1<=in<=n-1,从out后一个元素循环到最后一个元素

过程:将out后面的所有元素与当前out元素值比较,保证out位置的元素是从out到最后的这些元素中最小的。

package datastructure.c3.sort.selectsort;

public class ArraySel {
	private long[] a;
	private int nElems;
	public ArraySel(int max){
		a=new long[max];
		nElems=0;
	}
	public void insert(long value){
		a[nElems]=value;
		nElems++;
	}
	public void display(){
		for(int j=0;j

package datastructure.c3.sort.selectsort;

public class SelectSortApp {
	public static void main(String[] args) {
		int maxSize=100;
		ArraySel arr;
		arr=new ArraySel(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();
	}
}


交换效率高于冒泡排序,故整体效率高于冒泡排序。

当数组较小,且交换的时间比比较的时间大得多时(极端情形如逆序),选择排序较快。

你可能感兴趣的:(数据结构与算法,数据结构,选择排序)