还有什么排序常用的嘛?
import java.util.Arrays;
class Paixu
{
public static void main(String[] args)
{
int[] arr={1,3,4,2,6,5,8};
System.out.println("排序前:");
print(arr);//打印数组
System.out.println("选择排序后:");
selectSort(arr);//选择排序
print(arr);//打印数组
System.out.println("冒泡排序后:");
bubbleSort(arr);//冒泡排序
print(arr);//打印数组
System.out.println("Arrays类中sort()排序后:");
Arrays.sort(arr);//升序排序
print(arr);//打印数组
}
//选择排序:一个元素和它后面每个元素进行比较 如果符合条件换位
public static void selectSort(int[] arr){
for(int i=0;i<arr.length-1;i++){//外层控制比较[arr.length-1]趟 每趟比较都会产生一个最值在[i]的位子
for(int j=i+1;j<arr.length;j++){//内层循环控制一趟比较多少[arr.length]次 i+1让每次比较的元素减少
if(arr[i]>arr[j]){//一个元素[i]和后面的所有元素[j=i+1]比较 从小到大
swap(arr,i,j);//调用方法交换两个数
}
}
}
}
//冒泡排序: 相邻两个元素进行比较,如果符合条件换位
public static void bubbleSort(int[] arr){
for(int i=0;i<arr.length-1;i++){//外层控制比较[arr.length-1]趟 每趟比较都会产生一个最值在[arr.length-1-i]的位子
for(int j=0;j<arr.length-1-i;j++){//内层循环控制一趟比较多少次[arr.length-1-i] -i让每次比较的元素减少 -1避免数组下标越界
if(arr[j]<arr[j+1]){//相邻两个元素[j][j+1]进行比较 从大到小
swap(arr,j,j+1);//调用方法交换两个数
}
}
}
}
//交换两个数 定义第三方变量
public static void swap(int[] arr,int a,int b){
int temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
//打印数组
public static void print(int[] arr){
System.out.print("[");
for(int i=0;i<arr.length;i++){
if(i!=arr.length-1){
System.out.print(arr[i]+",");
}else{
System.out.println(arr[i]+"]");
}
}
}
}
|
|