大家好,本文章是本人学习时的记录,如有错误请指出,谢谢!!!
冒泡排序
代码思路:让数组中的数据两两成对的去比较,首先让第一个数和第二个数进行比较,然后根据需求进行交换,以此类推直到第一轮结束,进行数组长度-1轮
int[] nums={1,10,2,5,8,9,4,7,12};
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]){
int num=nums[j];
nums[j]=nums[j+1];
nums[j+1]=num;
}
}
}
for (int j = 0; j < nums.length; j++) {
System.out.println(nums[j]);
}
选择排序
据题可得是让x进行选择,然后进行排序
代码思路:这里我们把x看成数组中第一个数让其对后面的数进行比较,找到最小值并进行交换,以此类推进行循环。
int[] nums={1,10,2,5,8,9,4,7,12};
for (int i = 0; i < nums.length-1; i++) {
int num=nums[i];//拿到第一个数
//用第一个数跟后面的所有数比较找到最小值并交换
int minIndex=i;//记录拿到数的下标
for (int j = i+1; j < nums.length; j++) {
if(num>nums[j]){
num=nums[j];
minIndex=j;
}
}
int sub=nums[minIndex];
nums[minIndex]=nums[i];
nums[i]=sub;
}
for (int j = 0; j < nums.length; j++) {
System.out.println(nums[j]);
}
效率对比
选择排序相对于冒泡排序来说,选择排序的效率要高。