每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
代码
1. public class ChoseSort {
2. //constructor without parameters
3. public ChoseSort(){};
4.
5. //constructor with parameters
6. public int[] ChoseSort(int[] intArr){
7. for(int i=0;i<intArr.length-1;i++){
8. int lowIndex = i;
9.
10. for(int j=i+1;j<intArr.length;j++){
11. if(intArr[j]<intArr[lowIndex]){
12. lowIndex = j;
13. }
14. }
15.
16. //将当前第一个元素与它后面序列中的最小的一个 元素交换,也就是将最小的元素放在最前端
17. int temp = intArr[i];
18. intArr[i] = intArr[lowIndex];
19. intArr[lowIndex] = temp;
20. }
21.
22. return intArr;
23. }
24.
25. public static void main(String[] args) {
26. ChoseSort choseSort = new ChoseSort();
27. int[] intArr = {5,6,9,2,4,3,8};
28. int[] intArrAfterSort = choseSort.ChoseSort(intArr);
29. for(int arrItem:intArrAfterSort){
30. System.out.print(arrItem+" ");
31. }
32. }
33. }