2020-11-25

08 选择排序

08 选择排序

准备工作

public class SelectionSort { public static void main(String[] args) {  //selection sort是快速排序的意思   int[] a={55,77,22,44,88,-8};  System.out.println("需要排序的原数组a如下所示:");  for (int i = 0; i < a.length; i++) {   System.out.print(a[i]+"\t");  }  System.out.println();//换行 }}

A.升序

1.思路分析:

//核心是找最大值
//升序思路:

 //1.找到数组当前部分的最大值的下标,并把它赋值给max_index(每次寻找前会重置为0) //2.把最大值与数组当前部分的最后一个元素交换 //3.循环1,2步骤,直到最外层循环遍历结束

//数组当前部分(说明)----->
//设数组 int a[]={1,-33,44,5,7,99};
//第一次,数组当前部分为1到99这六个元素,所以max_index=5,最后一个元素的坐标为a.length-1;
//把a[max_index]与a[a.length-1]交换,最后一个元素已经确定
//第二次,数组的当前部分为1到7这五个元素....................倒数第二个元素已经确定
//第三次,数组的当前部分为1到5这四个元素
//注意:降序部分与升序的部分的数组的当前部分是一致的

2.核心代码

 for (int i = 0; i < a.length-1; i++) {   //a.length-1是因为第一个数不用交换了,因为后面的数已经排好序了   int max_index=0;//使a[max_index]为数组a的第一个元素   for (int j = 1; j < a.length-i; j++) {   //第一个不用比,所以默认从第二个开始比较    if(a[j]>=a[max_index]){     max_index=j;    }   }   int temp=a[max_index];   a[max_index]=a[a.length-1-i];   a[a.length-1-i]=temp;  }  //排序后(升序)的数组为:  System.out.println("排序后的数组a(升序)如下所示");  for (int i = 0; i < a.length; i++) {   System.out.print(a[i]+"\t");  }

3.运行截图

B.降序

1.思路分析:

//核心是找最小值

//降序思路:

   //1.找到数组当前部分的最小值的下标,并把它赋值给min_index(每次寻找前会重置为0)   //2.把最小值与数组当前部分的最后一个元素交换  //3.循环1,2步骤,直到最外层循环遍历结束

2.核心代码:

 for (int i = 0; i < a.length-1; i++) {   //a.length-1是因为第一个数不用交换了,因为后面的数已经排好序了   int min_index=0;//使a[max_index]为数组a的第一个元素   for (int j = 1; j < a.length-i; j++) {   //第一个不用比,所以默认从第二个开始比较    if(a[j]<=a[min_index]){     min_index=j;    }   }   int temp=a[min_index];   a[min_index]=a[a.length-1-i];   a[a.length-1-i]=temp;  }  //排序后(降序)的数组为:  System.out.println("排序后的数组a(降序)如下所示");  for (int i = 0; i < a.length; i++) {   System.out.print(a[i]+"\t");  }

3.运行截图









原文转载:http://www.shaoqun.com/a/493057.html

mile:https://www.ikjzd.com/w/1746

retriever:https://www.ikjzd.com/w/773

立刻网:https://www.ikjzd.com/w/2323


08选择排序准备工作publicclassSelectionSort{publicstaticvoidmain(String[]args){//selectionsort是快速排序的意思int[]a={55,77,22,44,88,-8};System.out.println("需要排序的原数组a如下所示:");for(inti=0;i<a.length;i++){Sys
跨境通网站:跨境通网站
铭宣:铭宣
震惊!姐夫前脚宣布离婚,亚马逊公司就被德国法院起诉!:震惊!姐夫前脚宣布离婚,亚马逊公司就被德国法院起诉!
离北京鸟巢最近的地铁站是哪站?:离北京鸟巢最近的地铁站是哪站?
武当山景区门票价格多少钱_武当山票价及开放时间:武当山景区门票价格多少钱_武当山票价及开放时间

No comments:

Post a Comment