/**
冒泡排序,外层控制轮数,排一轮后最大的数会在最后,下一轮不用再比较上一轮最后一个数
23,45,12,66,98,60
23,12,45,66,60,98第一轮
12,23,45,60,66 第二轮
12,23,45,60 第三轮
12,23,45 第四轮
12,23 第五轮
*/
public class Test1 {
public static void main(String[] args) {
int [] nums={23,45,12,66,98,60};
int c;
for (int i = 0; i < nums.length-1; i++) {
for (int j = 0; j <nums.length-1-i; j++) {
if(nums[j]>nums[j+1]){
c=nums[j];
nums[j]=nums[j+1];
nums[j+1]=c;
}
}
}
for(int n:nums){
System.out.println(n);
}
}
}
/**
选择排序,每一轮寻找最小的数放到最前面,外层控制轮数
23,45,12,66,98,60
12,45,23,66,98,60第一轮 比较5次
12,23,45,66,98,60第二轮 4次
12,23,45,66,98,60第三轮 3次
12,23,45,60,66,98第四轮 2次
12,23,45,60,66,98第五轮 1次
*/
public class Test1 {
public static void main(String[] args) {
int [] nums={23,45,12,66,98,60};
int c;
for (int i = 0; i < nums.length-1; i++) {
int minIndex=i;//每轮假设一个最小的下标
for (int j = i+1; j <nums.length; j++) {
if (nums[minIndex] > nums[j]) {
minIndex = j;
}
}
//判断需要交换的数下标是否为自己
if(minIndex!=i){
c=nums[i];
nums[i]=nums[minIndex];
nums[minIndex]=c;
}
}
for(int n:nums){
System.out.println(n);
}
}
}