排序(选择,冒泡,直接插入,希尔排序)
生活随笔
收集整理的這篇文章主要介紹了
排序(选择,冒泡,直接插入,希尔排序)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
import java.util.Arrays;public class Main {public static void main(String[] args) {int[] arr = {6, 9, 5, 2, 1, 7, 2, 3};System.out.println(Arrays.toString(arr)); // bubbleSort(arr); // selectSort(arr); // insertionSort(arr);shellSort1(arr); // shellSort2(arr);System.out.println(Arrays.toString(arr));}/*** 冒泡排序法** @param arr*/public static void bubbleSort(int[] arr) {for (int i = 0; i < arr.length; i++) {int min = i;for (int j = i + 1; j < arr.length; j++) {if (arr[j] < arr[i]) {swap(arr, j, i);}}}}/*** 選擇排序法** @param arr*/public static void selectSort(int[] arr) {for (int i = 0; i < arr.length; i++) {int min = i;for (int j = i + 1; j < arr.length; j++) {if (arr[j] < arr[min]) {min = j;}}if (min != i) {swap(arr, i, min);}}}/*** 插入排序法** @param arr*/public static void insertionSort(int[] arr) {for (int i = 0; i < arr.length; i++) {int j = i;while (j > 0 && arr[j] < arr[j - 1]) {swap(arr, j, j - 1);j--;}}}/*** 希爾排序 針對有序序列在插入時采用交換法** @param arr*/public static void shellSort1(int[] arr) {//增量gap,并逐步縮小增量for (int gap = arr.length / 2; gap > 0; gap /= 2) {//從第gap個元素,逐個對其所在組進行直接插入排序操作for (int i = gap; i < arr.length; i++) {int j = i;while (j - gap >= 0 && arr[j] < arr[j - gap]) {//插入排序采用交換法swap(arr, j, j - gap);j -= gap;}}}}/*** 希爾排序 針對有序序列在插入時采用移動法。** @param arr*/public static void shellSort2(int[] arr) {//增量gap,并逐步縮小增量for (int gap = arr.length / 2; gap > 0; gap /= 2) {//從第gap個元素,逐個對其所在組進行直接插入排序操作for (int i = gap; i < arr.length; i++) {int j = i;int temp = arr[j];if (arr[j] < arr[j - gap]) {while (j - gap >= 0 && temp < arr[j - gap]) {//移動法arr[j] = arr[j - gap];j -= gap;}arr[j] = temp;}}}}/*** 交換數組元素** @param arr* @param a* @param b*/public static void swap(int[] arr, int a, int b) {int temp = arr[a];arr[a] = arr[b];arr[b] = temp;} }http://www.cnblogs.com/chengxiao/p/6103002.html
轉載于:https://my.oschina.net/547217475/blog/1581937
總結
以上是生活随笔為你收集整理的排序(选择,冒泡,直接插入,希尔排序)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.IntelliJ IDEA搭建Spr
- 下一篇: WCF中的Dispose