算法步骤:java
1)首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置算法
2)再从剩余未排序元素中继续寻找最小(大)元素,而后放到已排序序列的末尾。测试
3)重复第二步,直到全部元素均排序完毕。code
选择排序(Java)排序
public static int[] selectionSort(int[] elements) { int temp = 0; if(null == elements || 1 >= elements.length) { // do nothing } else { System.out.println("elements="+Arrays.toString(elements)); System.out.println("------------------------------------------------"); for(int i=0;i<elements.length-1;i++) { for(int j=i+1;j<elements.length;j++) { if(elements[i] > elements[j]) { temp = elements[i]; elements[i] = elements[j]; elements[j] = temp; } } System.out.println("elements="+Arrays.toString(elements)); System.out.println("------------------------------------------------"); } } return elements; }
测试代码:element
public static void main(String[] args) { int[] array = {82 ,31 ,29 ,71, 72, 42, 64, 5, 110}; selectionSort(array); }
排序结果:io
elements=[82, 31, 29, 71, 72, 42, 64, 5, 110] ------------------------------------------------ elements=[5, 82, 31, 71, 72, 42, 64, 29, 110] ------------------------------------------------ elements=[5, 29, 82, 71, 72, 42, 64, 31, 110] ------------------------------------------------ elements=[5, 29, 31, 82, 72, 71, 64, 42, 110] ------------------------------------------------ elements=[5, 29, 31, 42, 82, 72, 71, 64, 110] ------------------------------------------------ elements=[5, 29, 31, 42, 64, 82, 72, 71, 110] ------------------------------------------------ elements=[5, 29, 31, 42, 64, 71, 82, 72, 110] ------------------------------------------------ elements=[5, 29, 31, 42, 64, 71, 72, 82, 110] ------------------------------------------------ elements=[5, 29, 31, 42, 64, 71, 72, 82, 110] ------------------------------------------------