选择排序和冒泡排序

//直接选择排序
public class Demo {
    public static void main(String[] args) {
        int a[] = {20,3,69,7,32};
        int index;

        for(int i = 0; i < a.length -1; i++){
            index = 0;//默认每一轮第一个数最大
            for(int j = 1; j < a.length - i; j++){
                if(a[index] < a[j]) index = j;
            }

            int temp = a[a.length - i -1];//要交换的最后一数
            a[a.length - i -1] = a[index];
            a[index] = temp;
        }

        //输出:

        for(int k : a){
            System.out.print(k + " ");
        }

    }
}

/*
原数:
20,3,69,7,32

原理:将第一个元素与后面的元素比较,若第一个元素比后面任何一个数都要大。
就与最后一个元素交换位置。第二轮将剩下的数比较,重复以上操作、

第一轮:
20,3,32,7,69

第二轮:
20,3,7,32,69

第三轮:
7,3,20,32,69

第四轮:
3,7,20,32,69

输出:
3 7 20 32 69 

*/

这里写图片描述

//冒泡排序
/*
1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3.针对所有的元素重复以上的步骤,除了最后一个。
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较

*/
public class Demo1 {
    public static void main(String[] args) {
        int a[] = {63, 4, 24, 1, 3, 15};

        for(int i = 0; i < a.length - 1; i++)
        {
            for(int j = 0; j < a.length - i - 1; j++)
            {
                if(a[j] > a[j+1])
                {
                    int temp = a[j];
                    a[j] = a[j + 1];
                    a[j + 1] = temp;
                }

            }
        }

        for(int k : a){
            System.out.print(k + " ");
        }
    }
}
输出:
1 3 4 15 24 63 

猜你喜欢

转载自blog.csdn.net/yang10560/article/details/76288135