选择排序(Java 版本 文字描述+排序过程的截图)

1:概念

     循环待排序区间找到最大的数并且和待排序的区间中一个数字(实现从大到小排序)或者最后一个数字(实现从小到大排序)交换位置。

     不难发现“选择排序”和“冒泡排序”的区别就是“选择排序”循环的过程中只交换一次位置。而“冒泡排序”相邻两个数有大小出现就会交换位置。

2:观察每次排序的效果

   如下图所示每次循环都会找到最大的数如果当前位置不是最大数就会交换位置直到循环结束

选择排序过程截图

3:代码示例

public static void main(String[] args){
        /**
         *选择排序: 待排序
         */
        int[] toSort={12,342,1,56,8,789,3,5,999,33,88};
        
        System.out.print("排序前结果:");
        printTosort(toSort);
        System.out.println();
        
        for(int i=0;i<toSort.length-1;i++){
            
            int max=i;
            
            for(int j=i+1;j<toSort.length;j++){
                if(toSort[j]>toSort[max]){
                    max=j;
                }
            }
            if(toSort[i]<toSort[max]){
                int tmp=toSort[i];
                toSort[i]=toSort[max];
                toSort[max]=tmp;
            }
            System.out.println();
            System.out.print("第【"+(i+1)+"】次排序的结果:");
            printTosort(toSort);
            System.out.println();
        }
        
        System.out.println();
        System.out.print("排序后结果:");
        printTosort(toSort);
        
    }

    private static void printTosort(int[] toSort) {
        for(int i=0;i<toSort.length;i++){
            System.out.print(toSort[i]+"   ");
        }
    }

希望对看到文章的小伙伴有所帮助。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,298评论 0 52
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 3,819评论 0 15
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序好...
    依依玖玥阅读 1,348评论 0 2
  • 概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的...
    Luc_阅读 2,371评论 0 35
  • 大家都有听说失败是成功之母,大家也理所当然的认可这个道理,身边的朋友,亲人,以及自己的孩子面对失败的时候,我们...
    王超_e25f阅读 408评论 0 0

友情链接更多精彩内容