java中输入一组数组,进行升序排序(冒泡排序)
图片分析部分
此代码数组输入了五个数,所以第一轮比较四次下面四幅图是是四轮排序的情况
1.冒泡排序:
(1)相邻的两个值比较大小,互换位置
(2)记忆:外层length-1;内层length-i
代码部分(冒泡排序)
class TestBubble{
public static void main(String[] args){
int[] nums = {4,3,5,2,1};
for(int i = 1;i < nums.length;i++){ //外层for循环决定了数组比较轮数.
for(int j = 0;j < nums.length-i;j++){ //内层for循环执行一次,比较出一轮最大值排在最后.
if(nums[j] > nums[j+1]){ //if语句进行两个数比较互换,前面的数大,前后交换.大于号改成小于可降序
int temp;
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
// 打印输出升序后的数组
for(int n = 0;n < nums.length;n++){
System.out.print(nums[n] + "\t");
}
}
}
java中输入一组数组,进行升序排序(选择排序)
2.选择排序: (1)固定值与其他比较,互换位置. (2)记忆:外层length-1;同时外层i作为固定值,内层j=i+1作为起始值
图片分析
代码部分(选择排序)
class TestSelect{
public static void main(String[] args){
int[] nums = {4,3,5,2,1};
for(int i = 0;i < nums.length-1;i++){ //外层for循环决定了数组比较轮数.
for(int j = i+1;j < nums.length;j++){ //内层for循环执行一次,比较出一轮最小值排在最前面.
if(nums[i] > nums[j]){ //if语句进行两个数比较互换,前面的数大,前后交换.大于号改成小于可降序
int temp;
temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
}
// 打印输出升序后的数组
for(int n = 0;n < nums.length;n++){
System.out.print(nums[n] + "\t");
}
}
}