/*
按大小排列数组中元素的顺序{2,23,5,6,9,1}
*/
//从小到大排列
//内循环结束一次,最值出现在头角标位上
//选择排序
class ArrayTest2
{
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[y]<arr[x])
{
/*
int temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
*/
swap(arr,x,y);//换位置
}
}
}
}
//打印数组
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={2,23,5,6,9,1};
//printArray(arr);
//selectsort(arr);//选择排序
//Arrays.sort(arr);//java中已经定义好的一种排序方式,开发中对数组排序要使用该句代码
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;
*/
swap(arr,y,y+1);
}
}
}
}
/*
发现无论什么排序都需要对满足条件的元素进行未知置换
所以可以把这部分相同的代码提取出来,单独封装成一个函数
*/
public static void swap(int[] arr,int a,int b)
{
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
}
数组的排序,加入数组中相邻元素的置换
最新推荐文章于 2022-11-15 20:28:07 发布