三种简单排序

1.冒泡排序

冒泡排序是一种简单的排序算法,其基本思想如下:

1)从第一个开始起,比较相邻的两个元素的大小,如果前一个比后一个大,则进行交换(也就是小的冒上去)。

2)然后再和之前相邻元素进行比较,若小,则冒上去。

2)重复以上操作,直到最后一个元素。

 1 public static void BubbleSort(long[] arr){

 2         long tmp = 0;

 3         for(int i=0;i<arr.length-1;i++){

 4             for(int j=arr.length-1;j>i;j--){

 5                 if(arr[j] < arr[j-1]){

 6                     tmp = arr[j];

 7                     arr[j]=arr[j-1];

 8                     arr[j-1]=tmp;

 9                     

10                 }

11             }

12         }

13     }

2.选择排序

选择排序也是一种简单的排序算法,其基本思想如下:

1)外层进行第一趟循环,将第一个元素作为临时比较元素,内层循环则找出最小的元素,进行交换。

2)外层进行第二趟循环,将第二个元素作为临时比较元素,内层循环则找出最小的元素,进行交换。

3)重复上述操作,直到循环结束。

 1 public static void SelectSort(long[] arr){

 2         int k=0;

 3         long tmp = 0;

 4         for(int i=0;i<arr.length-1;i++){

 5             k=i;

 6             for(int j=i;j<arr.length;j++){

 7                 if(arr[j]<arr[k]){

 8                     k=j;

 9                 }

10             }

11             tmp = arr[i];

12             arr[i]=arr[k];

13             arr[k]=tmp;

14         }

15     }

3.插入排序

插入排序亦是一种简单的排序算法,它的基本思想如下:

1)从第二个元素开始循环(因为是从前往后开始于之前的比较进行插入)将其作为临时比较元素,然后将前一个元素和临时比较元素进行比较。

2)如果前一个元素比临时比较元素大,则将前一个元素赋给后一个元素。

3)然后将临时比较元素赋到最前面。

 1 public static void InsertSort(long[] arr){

 2         int tmp = 0;

 3         for(int i=1;i<arr.length;i++){

 4             tmp = arr[i];

 5             int j=i;

 6             while(j>0 && arr[j]>=tmp){

 7                 arr[j]=arr[j-1];

 8                 j--;

 9             }

10             arr[j]=tmp;

11         }

12     }

 

你可能感兴趣的:(排序)