Java实现常见排序算法

1、冒泡排序

规则,①、左边开始,比较两个数。②、如果左边大,则交换位置。③、如果右边大,则不交换位置。

 1     public static void bubleSort(int arr[]){
 2 
 3         for (int i = 0; i < arr.length - 1; i++) {
 4             for (int j = 0; j < arr.length - i - 1; j++) {
 5                 if (arr[j]>arr[j+1]){
 6                     int temp = arr[j];
 7                     arr[j] = arr[j+1];
 8                     arr[j+1] = temp;
 9                 }
10             }
11         }
12     }

2、选择排序

选择排序和冒泡排序有点类似

 1     public static void selectSort(int arr[]){
 2 
 3         //第二层循环就是从剩下的数遍历
 4         //每次遍历完,不需要从头遍历,从剩余的数中获取最小的一个,所以遍历剩下的数,int i=j
 5         for (int i = 0; i < arr.length - 1; i++){
 6             for (int j = i + 1; j < arr.length; j++) {
 7                 //找到了比array[i]小的则与array[i]交换位置
 8                 if (arr[i] > arr[j]) {
 9                     int temp = arr[i];
10                     arr[i] = arr[j];
11                     arr[j] = temp;
12                 }
13             }
14         }
15     }

3、插入排序

 1     public static void insertionSort(int arr[]){
 2         //无序序列第一个数的下标
 3         int i;
 4         //有序序列最后一个数的下标
 5         int j;
 6         //要插入的数据
 7         int insertNode;
 8         //从数组的第二个元素开始循环将数组中的元素插入
 9         for (i = 1;  i < arr.length ; i++) {
10             //设置数组中的第二个元素为第一次循环要插入的数据
11             insertNode = arr[i];
12             //有序序列中最后一个元素的下标
13             j = i - 1;
14             //防止数组下标越界异常,j>=0 并且要放在&&条件之前
15             while (j>=0 && arr[j]>insertNode){
16                 arr[j+1] = arr[j];  //如果要插入的元素小于第j个元素,就将第j个元素往后移
17                 j--;  //跳出while循环
18             }
19             //直到要插入的元素大于第j个元素,将insertNode放入数组
20             arr[j+1] = insertNode;
21         }
22     }

https://www.cnblogs.com/zhaosq/p/9857713.html

https://www.cnblogs.com/toria/p/sort.html

posted @ 2019-09-26 11:42  E_lian  阅读(126)  评论(0编辑  收藏  举报