需求:键盘录入6个整数,存入数组,并进行冒泡排序.
冒泡原理(由大到小):
(1)在数组(int [] arr ={5,6,7,8,3,2})中有一组数据,如下:
(2)按照由大到小的顺序,arr[0] = 5,arr[1] = 6.
5<6,应该将arr[0]和arr[1]的值互换.
(3)此时arr[1] = 5,arr[2] = 7.
5<7,应该将arr[1]和arr[2]的值互换.
(4)此时arr[2] = 5,arr[3] = 8.
此时5<8,应该将arr[2]和arr[3]的值互换.
(5)此时arr[3]=5,5>3>2.是想要的顺序,结束一次循环
(6)继续比较arr[0]与arr[1]的值,6<7,arr[0]与arr[1]交换值
(7)比较arr[1]与arr[2]的值,6<8,arr[1]与arr[2]交换值
(8)6>5>3>3,结束一次循环
(9)继续比较arr[0]与arr[1]的值,7<8,arr[0]与arr[1]交换值
(10)该数组已经由大到小依次排列
注:在前几次循环中,8>3>2,也进行了循环,但是因为顺序正确没有交换数值
搞清楚了冒泡排序的原理,就可以开始书写代码了;
1.创建一个java项目,测试运行(文件名与类名一致).
class Maopao
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
2.搞定键盘录入.
import java.util.Scanner;//导包
Scanner sc = new Scanner(System.in);
3.定义数组.
int[] a = new int[6];
4.利用for循环将输入的数存入数组.
for(int i = 0;i < a.length;i++){
System.out.print("请输入第"+(i+1)+"个整数:");
a[i] = sc.nextInt();
}
5.冒泡排序(由大到小)
for(int i = 0;i<a.length-1;i++){
for(int j = 0;j<a.length-1-i;j++){
if(a[j]<a[j+1]){
l = a[j+1];
a[j+1] = a[j];
a[j] = l;
}
}
}
6.输出排序之后的数组每个位置的值
for(int b : a){
System.out.println(b);
}
整体代码展示:
import java.util.Scanner;
class Maopao
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int[] a = new int[6];
for(int i = 0;i < a.length;i++){
System.out.print("请输入第"+(i+1)+"个整数:");
a[i] = sc.nextInt();
}
int l = 0;
for(int i = 0;i<a.length-1;i++){
for(int j = 0;j<a.length-1-i;j++){
if(a[j]<a[j+1]){
l = a[j+1];
a[j+1] = a[j];
a[j] = l;
}
}
}
for(int b : a){
System.out.println(b);
}
}
}
输出结果展示:
以上为个人学习记录,如有侵权,立刻删除.(也是第一次使用优快云,也正在学习)