Java实现数组排序总结篇(冒泡,选择,插入,希尔)
程序员文章站
2022-07-02 18:27:16
...
package org.liuxin.interview; /** * * @author LiuBeY(http://liubey.iteye.com) */ public class SortAll { public static void main(String[] args) { int[] i = { 1, 5, 6, 12, 4, 9, 3, 23, 39, 403, 596, 87 }; System.out.println("----冒泡排序的结果:"); maoPao(i); System.out.println(); System.out.println("----选择排序的结果:"); xuanZe(i); System.out.println(); System.out.println("----插入排序的结果:"); chaRu(i); System.out.println(); System.out.println("----希尔(Shell)排序的结果:"); shell(i); } // 冒泡排序 public static void maoPao(int[] x) { for (int i = 0; i < x.length; i++) { for (int j = i + 1; j < x.length; j++) { if (x[i] > x[j]) { int temp = x[i]; x[i] = x[j]; x[j] = temp; } } } for (int i : x) { System.out.print(i + " "); } } // 选择排序 public static void xuanZe(int[] x) { for (int i = 0; i < x.length; i++) { int lowerIndex = i; // 找出最小的一个索引 for (int j = i + 1; j < x.length; j++) { if (x[j] < x[lowerIndex]) { lowerIndex = j; } } // 交换 int temp = x[i]; x[i] = x[lowerIndex]; x[lowerIndex] = temp; } for (int i : x) { System.out.print(i + " "); } } // 插入排序 public static void chaRu(int[] x) { for (int i = 1; i < x.length; i++) {// i从一开始,因为第一个数已经是排好序的啦 for (int j = i; j > 0; j--) { if (x[j] < x[j - 1]) { int temp = x[j]; x[j] = x[j - 1]; x[j - 1] = temp; } } } for (int i : x) { System.out.print(i + " "); } } // 希尔排序 public static void shell(int[] x) { // 分组 for (int increment = x.length / 2; increment > 0; increment /= 2) { // 每个组内排序 for (int i = increment; i < x.length; i++) { int temp = x[i]; int j = 0; for (j = i; j >= increment; j -= increment) { if (temp < x[j - increment]) { x[j] = x[j - increment]; } else { break; } } x[j] = temp; } } for (int i : x) { System.out.print(i + " "); } } }
推荐阅读
-
JAVA实现选择排序,插入排序,冒泡排序,以及两个有序数组的合并
-
选择排序、冒泡排序、插入排序、归并排序、快速排序的Java实现以及优化
-
用Python代码实现插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序
-
Java实现数组排序总结篇(冒泡,选择,插入,希尔)
-
Java实现数组排序总结篇(冒泡,选择,插入,希尔)
-
Java数据结构实例(冒泡、选择、插入、希尔排序)
-
Java数组排序总结(冒泡,选择,插入,希尔) JavaJ#算法Blog工作
-
Java数组排序总结(冒泡,选择,插入,希尔) JavaJ#算法Blog工作
-
Java数据结构和算法-数组、冒泡、选择、插入排序算法、栈、队列、堆
-
稳定性分析与Java实现:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序