面试总结之数组的四种排序方式

来源:互联网 发布:与明星合影软件 编辑:程序博客网 时间:2024/06/06 08:54

数组排列是非常基础的面试题目,必须掌握。

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;    }