随机排名 需求: 依次录入5名员工的的工号,然后展示一组随机排名顺序 如何实现随机排名 1.定义一个动态初始化的数组用于录入数据 2.遍历数组中的元素,每次随机一个索引值,让当前元素与该索引位置处的元素进行交换。 3.遍历输出数组中的内容即可 1.动态初始化一个数组,存储5个工号 int[] codes = new int[5]; 2.定义一个循环,循环5次,依次录入一个工号存入对应的位置 Scanner sc = new Scanner(System.in); for(int i = 0; i < codes.length; i++){ System.out.println("请输入第" + (i + 1) + "个员工工号:");//正式录入工号 int code = sc.nextInt(); 存入到数组中去 codes[i] = code; } 3.遍历数组中的每个元素,然后随机一个索引出来,让该元素与随机索引位置的元素值进行交换 Random r = new Random(); for(int i = 0; i < codes.length; i++){ 当前遍历的元素值:codes[i]; 随机一个索引位置出来 int index = r.nextInt(codes.length); 定义一个临时变量存储index位置的数据 int temp = codes[index]; codes[index] = codes[i]; codes[i] = temp; } 4.遍历数组元素输出随机排名的结果 for(int i = 0; i < codes.length; i++){ System.out.print(codes[i] + "\t"); }
冒泡排序 定义一个数组,存储一些数据 int[] arry = {15,32,87,57,48}; 定义一个循环控制比较的轮数 for(int i = 0; i < arry.length-1; i++){ 定义一个循环控制比较次数,占位 for(int j = 0; j < arry.length -i - 1; j++){ 判断j当前位置的元素值是否大于后一个位置 若大于 则交换 if(arry[j] > arry[j+1]) { int temp = arry[j+1]; arry[j+1] = arry[j]; arry[j] = temp; } } } 遍历数组内容输出 for(int i = 0; i < arry.length; i++){ System.out.print(arry[i] + "\t"); }