当前位置: 移动技术网 > IT编程>开发语言>Java > 简单的数组排序方法

简单的数组排序方法

2020年07月13日  | 移动技术网IT编程  | 我要评论
数组排序: 升序简单的几种排序方法:1.选择排序: 每一轮都选择一个最大的, 放在最后面2.冒泡排序: 每一轮比较相邻两个元素, 小的放前面, 大的放后面3.插入排序: 将数组分成两部分, 一部分是已经排好的, 另一部分挨个访问, 插入到前一部分合适的地方题目:将arr:8,2,3,7,1进行从小到大排序选择排序: arr: 8 , 2 , 3 , 7 , 1第一轮:默认index=01: 如果 arr[1] > arr[index], index就替换掉, index=02: 如

数组排序: 升序

简单的几种排序方法:
1.选择排序: 每一轮都选择一个最大的, 放在最后面
2.冒泡排序: 每一轮比较相邻两个元素, 小的放前面, 大的放后面
3.插入排序: 将数组分成两部分, 一部分是已经排好的, 另一部分挨个访问, 插入到前一部分合适的地方

题目:将arr:8,2,3,7,1进行从小到大排序
选择排序: arr: 8 , 2 , 3 , 7 , 1
第一轮:
默认index=0
1: 如果 arr[1] > arr[index], index就替换掉, index=0
2: 如果 arr[2] > arr[index], index就替换掉, index=0
3: 如果 arr[3] > arr[index], index就替换掉, index=0
4: 如果 arr[4] > arr[index], index就替换掉, index=0
交换 index位置 和 当前最后一个位置 length-1
1 , 2 , 3 , 7 , 8
i:0
j:1~5
第二轮:
1: arr[0] 比较 arr[1], 记录index=0
2: 如果 arr[2] > arr[index], index就替换掉, index=2
3: 如果 arr[3] > arr[index], index就替换掉, index=3
交换 index位置 和 当前最后一个位置 length-1-1
1 , 2 , 3 , 7 , 8
i:1
j:1~4
第三轮:
1: arr[0] 比较 arr[1], 记录index=0
2: 如果 arr[2] > arr[index], index就替换掉, index=2
交换 index位置 和 当前最后一个位置 length-1-2
1 , 2 , 3 , 7 , 8
i:2
j:1~3
第四轮:
1: arr[0] 比较 arr[1], 记录index=0
交换 index位置 和 当前最后一个位置 length-1-3
1 , 2 , 3 , 7 , 8
i:3
j:2
i: i=0; i < length-1;i++
j: j=1; j < length-i;j++

代码如下
public static void main(String[] args) {
    int[] arr = new int[]{8, 2, 3, 7, 1};
    for (int i=0;i<arr.length-1;i++){
        int index = 0;
        for(int j=1;j<arr.length-i;j++){
            if(arr[j]>arr[index]){
                index = j;
            }
        }
        int temp = arr[index];
        arr[index] = arr[arr.length-1-i];
        arr[arr.length-1-i] = temp;
    }
    System.out.println(Arrays.toString(arr));
}

冒泡排序分析: arr: 8 , 2 , 3 , 7 , 1;
第一轮: i=0
2, 8, 3, 7, 1 j=0 arr[j] > arr[j+1]->交换
2, 3, 8, 7, 1 j=1
2, 3, 7, 8, 1 j=2
2, 3, 7, 1, 8 j=3
第二轮: i=1
2, 3, 7, 1, 8 j=0
2, 3, 7, 1, 8 j=1
2, 3, 1, 7, 8 j=2
第三轮: i=2
2, 3, 1, 7, 8 j=0
2, 1, 3, 7, 8 j=1
第四轮: i=3
1, 2, 3, 7, 8 j=0
i: i=0; i < length-1;i++
j: j=0; j < length-1-i;j++

代码如下:

public static void main(String[] args) {
        int[] arr = new int[]{8, 2, 3, 7, 1};
        for (int i=0;i<arr.length-1;i++){
            for(int j=0;j<arr.length-i-1;j++){
                if(arr[j]>arr[j+1]){
                    int temp =arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
        System.out.println(Arrays.toString(arr));
    }

本文地址:https://blog.csdn.net/weixin_49195015/article/details/107282057

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网