展开

使用Java完成冒泡排序

发布于 2021-09-06 16:43:36     浏览 182

使用Java完成冒泡排序

问题解析:

【】

1、
抉信网,www.juexinw.com
1.从大到小排序:新建一个Java类,定义一个方法名(如:bubbleSort),这边返回值类型用int数组,并传递一个int类型数组,同时也return该数组。
2、
抉信网,www.juexinw.com
代码为:
3、
抉信网,www.juexinw.com
public int[] bubbleSort(int[] arr){
4、
抉信网,www.juexinw.com
return arr;
5、
抉信网,www.juexinw.com
}
6、
抉信网,www.juexinw.com
如图所示:
7、
抉信网,www.juexinw.com
2.冒泡排序的原理:比较相邻的元素,如果第一个比第二个小,就交换他们两个。
8、
抉信网,www.juexinw.com
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。
9、
抉信网,www.juexinw.com
代码为:
10、
抉信网,www.juexinw.com
//冒泡排序
11、
抉信网,www.juexinw.com
public int[] bubbleSort(int[] arr){
12、
抉信网,www.juexinw.com
//第一个for循环是程序需要执行要走多少趟
13、
抉信网,www.juexinw.com
for(int i=0;i<arr.length-1;i++){
14、
抉信网,www.juexinw.com
//第二个for循环是每趟需要比较多少次
15、
抉信网,www.juexinw.com
for(int j=0;j<arr.length-1-i;j++){
16、
抉信网,www.juexinw.com
//此处是从大到小排列
17、
抉信网,www.juexinw.com
if(arr[j]<arr[j+1]){
18、
抉信网,www.juexinw.com
//定义一个临时变量temp
19、
抉信网,www.juexinw.com
int temp=arr[j];
20、
抉信网,www.juexinw.com
arr[j]=arr[j+1];
21、
抉信网,www.juexinw.com
arr[j+1]=temp;
22、
抉信网,www.juexinw.com
}
23、
抉信网,www.juexinw.com
}
24、
抉信网,www.juexinw.com
}
25、
抉信网,www.juexinw.com
return arr;
26、
抉信网,www.juexinw.com
}
27、
抉信网,www.juexinw.com
如图所示:
28、
抉信网,www.juexinw.com
3.最后在main函数中创建对象,并调用方法,最后遍历输出。
29、
抉信网,www.juexinw.com
代码为:
30、
抉信网,www.juexinw.com
public static void main(String[] args) {
31、
抉信网,www.juexinw.com
//定义一个数组
32、
抉信网,www.juexinw.com
int[] arr={4,5,2,6,2,4,8,9,6,1,9,55,66,11,22};
33、
抉信网,www.juexinw.com
System.out.print("原来的数组:[");
34、
抉信网,www.juexinw.com
for(int i=0;i<arr.length;i++){
35、
抉信网,www.juexinw.com
if(i==arr.length-1){
36、
抉信网,www.juexinw.com
System.out.println(arr[i]+"]");
37、
抉信网,www.juexinw.com
}else{
38、
抉信网,www.juexinw.com
System.out.print(arr[i]+",");
39、
抉信网,www.juexinw.com
}
40、
抉信网,www.juexinw.com
}
41、
抉信网,www.juexinw.com
//创建对象(因为写方法没有使用static关键词,需创建对象后在调用方法)
42、
抉信网,www.juexinw.com
BubbleSort demo=new BubbleSort();
43、
抉信网,www.juexinw.com
//返回值类型是int数组,所以需要用数组接收
44、
抉信网,www.juexinw.com
arr=demo.bubbleSort(arr);
45、
抉信网,www.juexinw.com
//遍历输出
46、
抉信网,www.juexinw.com
System.out.print("排序后的数组:[");
47、
抉信网,www.juexinw.com
for(int i=0;i<arr.length;i++){
48、
抉信网,www.juexinw.com
if(i==arr.length-1){
49、
抉信网,www.juexinw.com
System.out.println(arr[i]+"]");
50、
抉信网,www.juexinw.com
}else{
51、
抉信网,www.juexinw.com
System.out.print(arr[i]+",");
52、
抉信网,www.juexinw.com
}
53、
抉信网,www.juexinw.com
}
54、
抉信网,www.juexinw.com
}
55、
抉信网,www.juexinw.com
如图所示:
56、
抉信网,www.juexinw.com
4.如果需要从小到大排序,只需要将判断条件进行更改即可。
57、
抉信网,www.juexinw.com
代码为:
58、
抉信网,www.juexinw.com
//冒泡排序
59、
抉信网,www.juexinw.com
public int[] bubbleSort(int[] arr){
60、
抉信网,www.juexinw.com
//第一个for循环是程序需要执行要走多少趟
61、
抉信网,www.juexinw.com
for(int i=0;i<arr.length-1;i++){
62、
抉信网,www.juexinw.com
//第二个for循环是每趟需要比较多少次
63、
抉信网,www.juexinw.com
for(int j=0;j<arr.length-1-i;j++){
64、
抉信网,www.juexinw.com
//此处是从大到小排列
65、
抉信网,www.juexinw.com
if(arr[j]>arr[j+1]){
66、
抉信网,www.juexinw.com
//定义一个临时变量temp
67、
抉信网,www.juexinw.com
int temp=arr[j];
68、
抉信网,www.juexinw.com
arr[j]=arr[j+1];
69、
抉信网,www.juexinw.com
arr[j+1]=temp;
70、
抉信网,www.juexinw.com
}
71、
抉信网,www.juexinw.com
}
72、
抉信网,www.juexinw.com
}
73、
抉信网,www.juexinw.com
return arr;
74、
抉信网,www.juexinw.com
}

相关推荐

猜你可能喜欢

点击加载更多