数组排序:冒泡排序法
java语言中排序的方法有许多,其中冒泡排序法是最为常用的方法之一,我曾经也在面试中被问到,面试官并不要求我写出代码,只是叫我说出大概的思路,由此可见,这些众多的算法中最为重要的并不是代码本身而是思考模式,这也是大多企业都较为看重的东西.
冒泡排序法原理
比较相邻的元素,将小的放到前面。
冒泡排序举例:{8 , 2 , 3 , 7 , 1}的排序过程如下所示:
ary={8,2,3,7,1}
ary={2,8,3,7,1}
ary={2,3,8,7,1}
ary={2,3,7,8,1}
ary={2,3,7,1|8}
ary={2,3,7,1|8}
ary={2,3,7,1|8}
ary={2,3,1|7,8}
ary={2,3,1|7,8}
ary={2,1|3,7,8}
ary={1,2,3,7,8}
过程分析
i表示次数
j表示位置
备注:
• i 的取值范围是: i = 0 ~ <ary.length-1
• j 的取值范围是: j = 0 ~ <ary.length - i -1
• 交换步骤伪代码如下:
if([j]>[j+1]){
[j]<->[j+1]
}
参考代码
package com.zzxx.easyTest;
import java.util.Arrays;
public class sortdemo {
public static void main(String[] args) {
int[] arrs=new int[]{9,6,15,3,6};
int[] b=sort(arrs);
System.out.println(Arrays.toString(b));
}
public static int[] sort(int[] a){
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]){
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
return a;
}
若有不足之处还请指正