java数组的排序算法
冒泡算法 (参考下图较容易理解)
public static void main(String[] args) {
//模拟数组 :
int[] nums = { 1 , 20 , 13, 8 , 4 , 3 , 5 };
//采用冒泡算法实现排序: 采用外层循环模拟: 比较轮数. 采用内层循环模拟: 每轮比较次数.
//外层循环: 模拟三轮.
for(int i= 0 ; i< ( nums.length - 1 ) ; i++ ){
//内层循环: 模拟每轮次数(递减) : 3 , 2 , 1
for(int j = 0 ; j< ( nums.length -1 -i ) ; j++ ){
//比较元素: 采用内层循环变量 : j 充当动态变化的下标.
if( nums[j] > nums[j+1] ){
// 前后 数据交换:
int a = nums[j];
nums[j] = nums[j+1];
nums[j+1] = a;
}
}
}
//测试以上冒泡排序是否成功:
for( int n1 : nums){
System.out.println(n1);
}
}
选择排序法
public static void main(String[] args) {
//模拟数组:
int[] nums = { 100 , 20 , 50 , 18 , 44, 15 , 33 };
//选择排序:
//外层循环: 模拟比较轮数.
for( int i = 0 ; i < (nums.length - 1) ; i++ ){
//内层循环 : 模拟每轮比较的次数: 每轮的头位置在变 , 结尾位置终点固定.
for( int j = i ; j < (nums.length - 1) ; j++ ){
//开始比较. i为固定的第一个元素 , j表示动态变化的下标:
if( nums[i] > nums[j+1] ){
//交换数据位置:
int a = nums[i];
nums[i] = nums[j+1];
nums[j+1] = a;
}
}
}
//遍历数组:
for(int n1 : nums){
System.out.println( n1 );
}
}


浙公网安备 33010602011771号