欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

直接排序法又叫选择排序:choose sort

程序员文章站 2024-01-17 21:27:16
...
题目:使用直接排序法将下列数组(从小到大排序)
思路:第一次:使用索引值为0的元素与其他位置的元素挨个比较一次,如果发现比0号索引值的元素小的,那么交换位置,第一轮下来最小值被放在了第一位
     第二次:将索引值为1的元素与其他位置的元素挨个比较一次,如果发现比1号索引值的元素小的,那么交换位置,第二轮下来第二小的值被放在了第二位
     ...这样依次循环比较n-1次,实现有小到大的排序操作
public class Choosesort {
    public static void main(String[] args) {
        int[] arr=new int[]{12,5,17,8,9};
        //排序前的数组
        System.out.println("排序前的数组元素为:");
        for (int i = 0; i <arr.length ; i++) {
            System.out.print(arr[i]+" ");
        }
        //选择排序法(将最小的依次选择出来放在合适的位置上)
        for (int i = 0; i <arr.length-1 ; i++) {//控制排序的轮数,轮数等于arr.length-1
            //下面这个for循环执行一次,就会把最小值放在第一位,执行两次就会把第二小的值放在第二位,这样依次实现排序
            for (int j = i+1; j <arr.length ; j++) {
                if(arr[i]>arr[j]){
                    arr[i]=arr[i]+arr[j];
                    arr[j]=arr[i]-arr[j];
                    arr[i]=arr[i]-arr[j];
                }

            }
        }

        //输出拍好序之后的数组
        System.out.println();
        System.out.println("排好序之后的数组元素为:");
        for (int i = 0; i <arr.length ; i++) {
            System.out.print(arr[i]+" ");
        }
    }
}
/*运行结果
排序前的数组元素为:
12 5 17 8 9 
排好序之后的数组元素为:
5 8 9 12 17 
*/