本帖最后由 刘俊佳 于 2012-7-20 10:49 编辑
大家帮我详细解释下这两个嵌套循环,还有就是怎样利用这两个嵌套循环实现排序的,脑袋大了....
package array;
public class ArrayTest2 {
/**
* 选择排序:内循环结束一次,最值出现头角标位置上。
*/
public static void main(String[] args)
{
int[] arr={5,1,6,4,2,8,9};
//在排序前
printArray(arr);
//selectSort(arr);
bubbleSort(arr);
//在排序后
printArray(arr);
}
/*
冒泡排序
*/
public static void bubbleSort(int[] arr)
{
for(int x=0;x<arr.length-1; x++)
{
for(int y=0;y<arr.length-x-1;y++)//-x:让每次比较的元素减少。-1:避免角标越界。
{
if(arr[y]>arr[y+1]){
int temp=arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;
}
}
}
}
public static void printArray(int[] arr)
{
System.out.print("[");
for(int x=0;x<arr.length;x++)
{
if(x!=arr.length-1)
System.out.print(arr[x]+",");
else
System.out.print(arr[x]+"]");
}
}
public static void selectSort(int[] arr)
{
for(int x=0; x<arr.length-1;x++)
{
for(int y=x+1;y<arr.length;y++)
{
//数据换位
if(arr[x]>arr[y])
{
int temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
}
}
}
}
|
|