数组排列是非常基础的面试题目,必须掌握。
1、利用Arrays的快速排序
public int[] quickSort(int[] arr){
Arrays.sort(arr);
return arr;
}
2、冒泡排序
思路:不断的与靠后元素比较将最小的数依次遍历出来
public int[] bubbleSort(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;
}
}
}
return arr;
}
3、选择排序
思路:从数组中不断的选出最小的数,得到有序数组
public int[] selectSort(int[] arr){
for(int i=0;i<arr.length-1;i++){
int min=i;
for(int j=i+1;j<arr.length;j++){
if(arr[min]>arr[j]){
min=j;
}
}
if(min!=i){
int temp=arr[i];
arr[i]=arr[min];
arr[min]=temp;
}
}
return arr;
}
4、插入排序
思路:新插入的元素与现有的元素组从后往前比较
public int[] insertSort(int[] arr){
for(int i=1;i<arr.length;i++){
for(int j=i;j>0;j--){
if(arr[j-1]>arr[j]){
int temp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
}else break;
}
}
return arr;
}