- public class SelectSort {
- /**
- * 选择排序:从0索引处依次和后面的元素比较,小的往前放,第一次比较完后,出现在最小索引处
- */
- public static void main(String[] args) {
- int[] arr = { 12, 54, 90, 36, 87, 0 };
- System.out.println("排序前:");
- printArray(arr);
- selSort(arr);
- System.out.println("排序后:");
- printArray(arr);
- }
- // 选择排序:
- public static void selSort(int[] arr) {
- // 外循环控制需要比较的次数
- for (int x = 0; x < arr.length - 1; x++) {
- // y = x + 1 是因为从0索引处开始一次比较
- // y < arr.length是因为y最小值是1
- for (int y = x + 1; y < arr.length; y++) {
- if (arr[x] > arr[y]) {
- int temp = arr[x];
- arr[x] = arr[y];
- arr[y] = temp;
- }
- }
- }
- }
- // 遍历数组
- public static void printArray(int[] arr) {
- System.out.print("[");
- for (int x = 0; x < arr.length; x++) {
- if (x == arr.length - 1) {
- System.out.println(arr[x] + "]");
- } else {
- System.out.print(arr[x] + ", ");
- }
- }
- }
- }
复制代码
原理图:
|
|