首页 > 代码库 > Java 选择排序
Java 选择排序
选择排序,每次将最小的数选出来,反复执行两个动作,比较、交换,放在最左边,依次类推,用数组实现选择排序
交换两个数
public class SwapTwo { /** *@author chengdu *@param args */ private int[] bubble; public void setBubble(int[] bubble){ this.bubble = bubble; } public int[] getBubble(){ return bubble; } public void swapTwoNumber(int x, int y){ //传入数组的索引位置,交互数组的两个值 int lenbubble = bubble.length; if(x > lenbubble - 1 || y > lenbubble - 1){ System.out.println("数组越界"); } else { int temp; if(bubble[x] > bubble[y]){ temp = bubble[x]; bubble[x] = bubble[y]; bubble[y] = temp; } } System.out.println("从小到大依次是:"+bubble[x]+","+bubble[y]); } public static void main(String[] args) { // TODO Auto-generated method stub SwapTwo st = new SwapTwo(); int[] bubble = {1, 9, 8, 5, 2, 6, 4, 3, 7}; System.out.println(bubble.length); st.setBubble(bubble); st.swapTwoNumber(0, 1); } }
选择排序
public class SelectSort { /** * @author chengdu * @param args */ private SwapTwo swaptwo; public void setSwaptwo(SwapTwo swaptwo){ this.swaptwo = swaptwo; } public SwapTwo getSwaptwo(){ return swaptwo; } public void selectSortMethod(int[] array){ int pos; //次数 int lenarray = array.length; swaptwo.setBubble(array); for(pos=1; pos < lenarray; pos++){ System.out.println("次数--------"+pos); for(int i=pos-1; i < lenarray - 1; i++){ swaptwo.swapTwoNumber(pos - 1, i+1); } } } public static void main(String[] args) { // TODO Auto-generated method stub SwapTwo swaptwo = new SwapTwo(); SelectSort selectSort = new SelectSort(); selectSort.setSwaptwo(swaptwo); int[] array = {1, 9, 6, 3, 4, 2, 5, 13, 15, 10}; selectSort.selectSortMethod(array); for(Integer i : array){ System.out.println(i); } } }
执行:
次数--------1
从小到大依次是:1,9
从小到大依次是:1,6
从小到大依次是:1,3
从小到大依次是:1,4
从小到大依次是:1,2
从小到大依次是:1,5
从小到大依次是:1,13
从小到大依次是:1,15
从小到大依次是:1,10
次数--------2
从小到大依次是:6,9
从小到大依次是:3,6
从小到大依次是:3,4
从小到大依次是:2,3
从小到大依次是:2,5
从小到大依次是:2,13
从小到大依次是:2,15
从小到大依次是:2,10
次数--------3
从小到大依次是:6,9
从小到大依次是:4,6
从小到大依次是:3,4
从小到大依次是:3,5
从小到大依次是:3,13
从小到大依次是:3,15
从小到大依次是:3,10
次数--------4
从小到大依次是:6,9
从小到大依次是:4,6
从小到大依次是:4,5
从小到大依次是:4,13
从小到大依次是:4,15
从小到大依次是:4,10
次数--------5
从小到大依次是:6,9
从小到大依次是:5,6
从小到大依次是:5,13
从小到大依次是:5,15
从小到大依次是:5,10
次数--------6
从小到大依次是:6,9
从小到大依次是:6,13
从小到大依次是:6,15
从小到大依次是:6,10
次数--------7
从小到大依次是:9,13
从小到大依次是:9,15
从小到大依次是:9,10
次数--------8
从小到大依次是:13,15
从小到大依次是:10,13
次数--------9
从小到大依次是:13,15
1
2
3
4
5
6
9
10
13
15
Java 选择排序