Java 冒泡排序

来源:互联网 发布:毕业生简历怎么写 知乎 编辑:程序博客网 时间:2024/05/17 07:05

class Choose     //排序
{
public static void selectSort(int [] arr)    //选择排序
{
for(int i=0;i<arr.length-1;i++)   //控制次数,最后一个位置的数不用比较,所以没有必要便利到最后一个角标
{
for(int j=i+1;j<arr.length;j++)     //控制每个角标要比较的位置
{
if(arr[i]>arr[j])    //如果成立,通过第三个变量交换数值位置,从小到大排序大于号,从大到下用小于号
{
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}

//冒泡排序 每比较一次最值在最后面 在堆内存中换位置比较资源,可以在栈内存中进行比较 ,每次循环只对最值进行换位
//开发中用Arrays.sort(数组名)
public static void bubbleSort (int [] arr) 
{
for (int i=0;i<arr.length-1;i++ )    //最后一位不需要比较
{
for (int j=0;j<arr.length-i-1;j++)       // -i是为了让每次比较的元素减少,-1是为了避免角标越界
{
if(arr[j]>arr[j+1])     //相邻两位进行比较换位
{
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}

public static void print(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={8,5,6,2,1};
System.out.print("排序前的数组:");
print(arr);
// selectSort(arr);
bubbleSort(arr);
System.out.print("排序后的数组:");
print(arr);
}
}
0 0
原创粉丝点击