31 8 53 61 13 9
从小到大,升序,俩数比较大的排后面
选择一个数据作为基准数据与其它数据一一作比较,基准数据大于与之作比较的数据则互换。
以数组下标为0的数据为基准数据逐步与后面的数据作比较:
31 8 53 61 13 9
31>8换: 8 31 53 61 13 9
8<53不换:
8<61不换:
8<13不换:
8<9不换: 8 31 53 61 13 9
得到最小值8
以数组下标为1的数据为基准数据逐步与后面的数据作比较:
8 31 53 61 13 9
31<53不换:
31<61不换;
31>13换: 8 13 53 61 31 9
13>9换: 8 9 53 61 31 13
得到第二小的值9
以数组下标为2的数据为基准数据逐步与后面的数据作比较:
以此类推比较完数组下标为4的那个就不用比了,最后一个数据数组下标为5已经和下标为4的比较了。
代码构思:
设计俩个循环,外层循环控制基准数据的下标i,数组长度(arr.length)为6,数组下标从0开始的,所以i<arr.length-1
内层循环控制的是与基准下标作比较的数据的下标,每个基准数据都要与作比较的数据比较到下标为5的数据,j<arr.length即j的下标只能到5
内层循环里面的语句就是俩个数据作比较判断是否互换 ,是要升序还是降序
循环结束之后遍历数组输出
public class Test17 {
public static void main(String []args){
int arr[]={31,8,51,61,13,9};
for(int i=0;i<arr.length-1;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
int a=arr[i];
arr[i]=arr[j];
arr[j]=a;
}
}
}
for(int b:arr){
System.out.println(b);
}
}
}