这是我做过的一道题,希望对你有帮助,我来理解的话,选择排序就是角标1和2、3、4、5...逐个进行比较,然后判断性的置换,接着就是下一轮,角标2和3、4、5...逐个比较,然后判断性的置换,一直到最后一个角标停止。
冒泡排序就是角标1和2比,然后判断性置换,角标2和3比,判断性置换,角标3和4比.....一直比到长度的次数。- public class Test2 {
- public static void main(String[] args) {
- // 建立一个数组
- int[] arr = { 73, 56, 89, 67, 25, 58, 70, 13 };
- // 先输出一次原数组
- print(arr);
- // 调用冒泡排序
- sort(arr);
- // 调用选择排序
- select(arr);
- // 输出排序后的数组
- print(arr);
- }
- // 选择排序
- public static void select(int[] arr) {
- for (int i = 0; i < arr.length; i++) {
- for (int j = i; j < arr.length; j++) {
- if (arr[i] > arr[j]) {
- // 比较大小后进行置换
- arr[i] ^= arr[j];
- arr[j] ^= arr[i];
- arr[i] ^= arr[j];
- }
- }
- }
- }
- // 冒泡排序
- public static void sort(int[] arr) {
- for (int i = 0; i < arr.length; i++) {
- for (int j = 0; j < arr.length - 1 - i; j++) {
- if (arr[j] > arr[j + 1]) {
- int temp = arr[j];
- arr[j] = arr[j + 1];
- arr[j + 1] = temp;
- }
- }
- }
- }
- // 打印数组
- public static void print(int[] arr) {
- System.out.print("[");
- for (int i = 0; i < arr.length; i++) {
- if (i != arr.length - 1)
- System.out.print(arr[i] + ",");
- else
- System.out.println(arr[i] + "]");
- }
- }
- }
复制代码
代码比较简单,也不多,直接记住固定格式也可以 |