1.1选择排序和冒泡排序的区别
冒泡排序:是通过不断地交换位置来实现(先不断确定最右的数值)
选择排序:是通过不断地确定最大值或最小值的下标的方法来进行实现(先不断的确定最左的数值)
1.2选择排序升序排列
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] nums = {3,5,2,1,7,9,10};System.out.println("排序之前:" + Arrays.toString(nums));upSort(nums);System.out.println("排序之后:" + Arrays.toString(nums));}/*** 升序* @param nums*/public static void upSort(int[] nums) {// TODO Auto-generated method stubint lenth = nums.length;for(int i = 0; i < lenth -1; i ++) {//定义外层循环的次数int index = i;//先定义最小值的下标for(int j = i + 1; j < lenth; j ++) {if(nums[index] > nums[j]) {index = j;//确定最小值的下标}}//选择排序中,外层循环一次,交换一次位置if(index != i) {int temp = nums[i];nums[i] = nums[index];nums[index] = temp;}System.out.println("经过第" + (i + 1) + "选择后,数组为:" + Arrays.toString(nums));}}
1.3选择排序降序排列
/**
* 降序
* @param nums
*/
public static void downSort(int[] nums) {
// TODO Auto-generated method stub
int lenth = nums.length;
for(int i = 0; i < lenth -1; i ++) {//定义外层循环的次数
int index = i;//先定义最大值的下标
for(int j = i + 1; j < lenth; j ++) {
if(nums[index] < nums[j]) {
index = j;//确定最大值的下标
}
}
//选择排序中,外层循环一次,交换一次位置
if(index != i) {
int temp = nums[i];
nums[i] = nums[index];
nums[index] = temp;
}
System.out.println("经过第" + (i + 1) + "选择后,数组为:" + Arrays.toString(nums));
}
}
