三种简单排序
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 }