java_关于数组的排序

数组的排序:
冒泡排序
冒泡排序基本思想:
在要排序的数组中,对当前还未排好序的范围内的全部数,
自上而下(从左到右)对相邻的两个数依次进行比较和调整
让较大的数往下沉(往右移),较小的往上浮(往左移),即:
每当两个相邻的数比较后,他们的顺序与排序要求相反时,
就将它们互换
冒泡排序的改进:
对冒泡排序的常见的改进方法是 加入一个标志性的
变量,用于标志某一轮排序过程中是否有数据交换,
如果没有进行数据交换,则说明数据已经按照要求
排列好,可立即结束排序,避免不必要的比较过程。

/**
 冒泡排序
 {6,3,1,2,5,4}
第一轮:找最大
6>3,交换{3,6,1,2,5,4}
6>1,交换{3,1,6,2,5,4}
......  {3,1,2,5,4,6}
第二轮:找次大
3>1,交换{1,3,2,5,4,6}
3>2,交换{1,2,3,5,4,6}
.....   {1,2,3,4,5,6}
第三轮:找第三大
...
第四轮:找第四大

*/
import java.util.Arrays;
public class ArrDemo01{
    public static void main(String[] args){
        int[] arr1 = {15, 67, 26, 43, 61, 25, 84, 80, 34, 70};
        /*冒泡排序*/
        for(int i=0;i<arr1.length-1;i++){
            boolean f = false;
            for(int j=0;j<arr1.length-1-i;j++){
                if(arr1[j]>arr1[j+1]){
                    int temp = arr1[j];
                    arr1[j] = arr1[j+1];
                    arr1[j+1] = temp;
                    f = true;//交换一次就改变状态
                }
            }
            if(!f){
                //开关状态没变 说明已经完成排序,不用继续下一轮
                break;
            }
        }
        System.out.println(Arrays.toString(arr1));
    }
}

简单选择排序:基本思想如下
在要排序的数组中,选择出最小(或者最大)的一
个数与第一个位置的数交换;然后再剩下的数当
中再找最小(或最大)的与第二个位置的数交换
依次类推,直到第n-1个元素(倒数第二个)和第
n个元素(最后一个数)比较为止。

简单选择排序
      原始数据 {4,5,2,3,1};

      找出最小1  与4交换  {1,5,2,3,4}
      找出最小2  与5交换  {1,2,5,3,4}
      找出最小3  与5交换  {1,2,3,5,4}
      找出最小4  与5交换  {1,2,3,4,5}
        /*简单排序*/
        for(int i=0;i<arr.length-1;i++){
            int index = i;//用于记录最小值的下标(初始假设arr[i]最小)
            boolean f = false;//定义一个标记
            for(int j=i+1;j<arr.length;j++){
                if(arr[index]>arr[j]){
                    index = j;//记录较小值的下标
                    f = true;//改变标记
                }
            }//内层结束
            if(f){//查看标记,更改,则需要交换
                int t = arr[i];
                arr[i] = arr[index];
                arr[index] = t;
            }
        }
        System.out.println(Arrays.toString(arr));

工具类的排序方法:

Arrays.sort(数组变量名);--对基本数据类型的数组
            与引用类型的数组都可排序

猜你喜欢

转载自blog.csdn.net/yc_hen/article/details/81230576