java基础学习记录之数组冒泡排序的学习与练习三

时间:2022-05-12 00:09:11
/*
对数组进行冒泡排序的练习。
冒泡排序每次遍历会把最值放到最后位。
最快的排序是希尔排序。
*/
class ArrayTest3
{
//从小到大排序。
public static void bubbleSort(int[] arr)
{
for (int x=0; x<arr.length ; x++ )
{
for (int y=0; y<arr.length-x-1 ; y++ )//-x:是每次遍历时比较的元素个数减少。-1:防止数组元素越界。
{
if (arr[y]>arr[y+1])
{
swap(arr,y,y+1);
/*
int temp=arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;
*/
}
}
}
}
/*
从大到小顺序排序。
public static void bubbleSort(int[] arr)
{
for (int x=0; x<arr.length ; x++ )
{
for (int y=0; y<arr.length-x-1 ; y++ )//-x:是每次遍历时比较的元素个数减少。-1:防止数组元素越界。
{
if (arr[y]<arr[y+1])
{
swap(arr,y,y+1);
//int temp=arr[y];
//arr[y]=arr[y+1];
//arr[y+1]=temp;
}
}
}
}
*/

public static void swap(int[] arr,int a,int b)
{
int temp=arr[a];
arr[a]=arr[b];
arr[b]=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.println(arr[x]+"]");
}
}

public static void main(String[] args)
{
int[] arr={6,4,2,7,8,1,9};
printArray(arr);
bubbleSort(arr);
printArray(arr);
//Arrays.sort(arr);java中已经定义好的一种排序方式。开发中,对数组进行排序,要使用该组代码。
}
}