前几天去面试了,看到冒泡排序我就想到老师当时说冒泡排序经常考,今天由此机会再次回想一下。
冒泡排序就是一排不按大小排列的一组数字,从小到大或者从大到小排列。如果数组里的元素少的话一看就会排序,但是数组里有无数个元素时不能,所以你只能一个一个的比较才能排序下来。就是说把这个数组的每个元素跟它的的相邻的数字作比较,如果比自己大往后沉,如果小往前面冒。
例如:默认 : 5,3,-4,2
第一次 (2跟-4比较) 5,3,-4,2
第二次(-4跟3比较) 5,-4,3,2
第三部(-4跟5比较) -4,5,3,2
-4,5,2,3
-4,2,5,3
-4,2,3,5
第一个例子:
public class MaoPao01
{
public MaoPao01()
{
int temp;
int arr[] = { -4, 0, -2, -6, 4, 6, 2, 1 };
for (int i = 0; i < arr.length; i++)
{
for (int j = i + 1; j < arr.length; j++)
{
if (arr[i] > arr[j])
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
for (int i = 0; i < arr.length; i++)
{
System.out.println(arr[i]);
}
}
public static void main(String[] args)
{
MaoPao01 b = new MaoPao01();
}
}
如果想从大到小排列的话只要把 if语句里面的大于号变成小于号就可以了。
第二个例子:
public class MaoPao02
{
public MaoPao02()
{
int arr[]={13,46,-54,0,34,8,4,54};
int temp;
for(int i=0;i<arr.length;i++) //MaoPao01不也一样的地方是小括号里面
{
for(int j=0;j<arr.length-i-1;j++)
{
if(arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for (int i = 0; i < arr.length; i++)
{
System.out.println(arr[i]);
}
}
public static void main(String[] args)
{
MaoPao02 mao=new MaoPao02();
}
}