一、需求:选择排序(Select Sort),进行升序显示
- 在一组排列中把最大的数取出来放在一个新的列表里,再删去,在取最大的数出来,依次类推直到取到最后一个数字
二、定义一个无序的一维数组,并输出数组
- 程序运行结果:
- 代码编写
//定义一个原始的数组int [] arrs= {9,1,8,2,7,3,6,4,5};System.out.print("输出原数组:");for(int i=0;i<arrs.length;i++ ) {if (i==arrs.length-1) {System.out.print(arrs[i]);}else {System.out.print(arrs[i]+",");}}
三、实现选择排序
- 下面介绍一下这里的无序区,还没有进行升序遍历完的元素。 选择排序升序遍历完一趟得到的结果是一趟排序记录最大的数,放到有序区的第一个位置; 再一趟排序是扣掉进入到有序区的数,再次遍历记录无序区最大的数,放在有序区的第二个位置,
- 代码编写:
System.out.println("");for(int i=0;i<arrs.length;i++ ) {for(int j=i+1;j<arrs.length;j++ ) {if (arrs[i]>arrs[j]) { int temp=arrs[i];arrs[i]=arrs[j];arrs[j]=temp;}}}
四、输出升序后结果
- 程序运行结果:
- 代码编写:
System.out.print("输出升序结果:");for(int i=0;i<arrs.length;i++ ) {if (i==arrs.length-1) {System.out.print(arrs[i]);}else {System.out.print(arrs[i]+",");}}
五、选择排序完整版代码(升序)
-
代码编写:
public static void main(String[] args) {//一、需求:选择排序(Select Sort),进行升序显示int [] arrs= {9,1,8,2,7,3,6,4,5};System.out.print("输出原数组:");for(int i=0;i<arrs.length;i++ ) {if (i==arrs.length-1) {System.out.print(arrs[i]);}else {System.out.print(arrs[i]+",");}}System.out.println("");for(int i=0;i<arrs.length;i++ ) {for(int j=i+1;j<arrs.length;j++ ) {if (arrs[i]>arrs[j]) { int temp=arrs[i];arrs[i]=arrs[j];arrs[j]=temp;}}}System.out.print("输出升序结果:");for(int i=0;i<arrs.length;i++ ) {if (i==arrs.length-1) {System.out.print(arrs[i]);}else {System.out.print(arrs[i]+",");}}}
六、选择排序实现降序
- 只需要在if语句中修改,实现效果是获取到无序区的最小值
七、选择排序完整版代码(降序)
-
代码编写
public static void main(String[] args) {//一、需求:选择排序(Select Sort),进行降序显示int [] arrs= {9,1,8,2,7,3,6,4,5};System.out.print("输出原数组:");for(int i=0;i<arrs.length;i++ ) {if (i==arrs.length-1) {System.out.print(arrs[i]);}else {System.out.print(arrs[i]+",");}}System.out.println("");for(int i=0;i<arrs.length;i++ ) {for(int j=i+1;j<arrs.length;j++ ) {if (arrs[i]<arrs[j]) { int temp=arrs[i];arrs[i]=arrs[j];arrs[j]=temp;}}}System.out.print("输出升序结果:");for(int i=0;i<arrs.length;i++ ) {if (i==arrs.length-1) {System.out.print(arrs[i]);}else {System.out.print(arrs[i]+",");}}}