Java实现冒泡排序
算法描述:比较相邻的两个元素,如果前面的元素比后面的小,则交换两个元素位置(降序排列);如果前面的元素比后面的元素大,则交换两个元素的位置(升序排列)。对每一对相邻元素执行同样的代码段,从开始的一对到结尾的最后一对,最后的元素就会是最小的元素(降序排列)。每次持续对越来越少的元素重复如上步骤,直到没有任何一堆数字需要比较。 原理:冒泡排序由两层嵌套循环实现对无序数组的排序,外层循环数据控制对比轮数,内层循环控制每轮对比次数,最终实现对一维数组的排序。算法描述:
int[] t = new int[]{20,33,81,56,65} //定义一个乱序数组 for(int j = 1 ; j < t.length ; j++ ) //外层循环控制对比轮数 for(int i = 0 ; i < t.length - j ; i++) //内层循环控制每一轮中数据的对比次数,其中每经过一轮,减少一次对比次数,最终实现乱序数组的降序(升序)排列 if(t[i] < t[i+1]){ int temp = t[i]; t[i] = t[i+1]; t[i+1] = temp; } //降序排列 //若满足循环条件,则通过临时变量temp,交换数字位置,将小的数字往后面排,否则保持不动源代码:
public class paixu { public static void main(String[] args) { int[] t = new int[]{20, 33, 81, 56, 65}; for (int j = 1; j < t.length; j++) { for (int i = 0; i < t.length - j; i++) { if (t[i] < t[i + 1]) { //交换 int temp = t[i]; t[i] = t[i + 1]; t[i + 1] = temp; } } } for(int i = 0 ; i < t.length ; i++) { System.out.print(t[i] + " "); } } }