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

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

作者: 平行线 | 来源:发表于2016-06-04 20:06 被阅读86次

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]+"   ");
        }
    }

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

相关文章

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/gzbldttx.html