/**
New灬狼
2015年12月27日21:37:38
*/
/*
需求:学习冒泡排序法。
思路:
冒泡排序法:bubble sort,是因为越大的元素会慢慢“浮”到数列的顶端而故名。
原理:
1,比较相邻的元素;如果第一个比第二大,就交换他们两个;0,1,一组,1,2,一组;
2.对每组元素进行比较、交换,从0开始,到结束;最后的元素就是最大的元素;
3,重复上面的比较、交换,除了最后一个元素;
4,直到没有任何一组数据需要比较,数组也就排序完成了。
步骤:
1,新建ArrayTest02.java;
2,新建函数 bubbleSort;
3,新建数组;
4,遍历数组;
5,排序;
6,遍历数组。
不是规律的规律:
selectSort改变内循环的条件;
bubbleSort改变内循环的条件;同时,为了防止角标越界,要-1;
*/
class ArrayTest02
{
//bubbleSort 返回值类型无,未知变量是一个数组。
public static void bubbleSort (int [] R)
{
for (int x = 0;x<R.length ;x++ )
{
for (int y = 0;y<R.length-x-1 ;y++ )
//y<R.length-x-1: -x:比较的元素减少的个数; -1:防止y+1的角标越界;
{
if (R[y]>R[y+1])
// <:从大到小; >:从小到大
{
swap(R,y,y+1);
}
}
}
}
//swap
public static void swap(int [] arr,int a,int b)
{
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
//遍历数组 display
public static void display(int[] arr )
{
System.out.print("数组中的元素是:\n{ ");
for (int x=0;x<arr.length ;x++ )
{
if(x!=arr.length-1)
{
System.out.print("["+x+"]="+(arr [x])+" ,");
}
else
{
System.out.println("["+x+"]="+(arr [x])+" }\n");
}
}
}
public static void main(String[] args)
{
int [] arr = {3,1,8,4,6,5,9,7,2};
display(arr);
bubbleSort(arr);
//Arrays.sort(arr); java中的排序方法
display(arr);
}
}
|
|