算法和数据结构-选择排序、插入排序及希尔排序 java实现
来源:互联网 发布:叮叮摩卡数据无法打开 编辑:程序博客网 时间:2024/05/22 14:19
参考文章:http://www.cnblogs.com/yangecnu/p/Introduction-Insertion-and-Selection-and-Shell-Sort.html
java代码:
public class Sort {public static void main(String[] args) {int[] array = { 3, 4, 2, 5, 1, 8 };System.out.println("原数组:");printArray(array);System.out.println("选择排序后:小-》大");selectionSort(array);printArray(array);// --------------------System.out.println("选择排序后:大-》小");selectionSort2(array);printArray(array);// --------------------System.out.println("插入排序后:小-》大");insertionSort(array);printArray(array);// --------------------System.out.println("选择排序后:大-》小");shellSort(array);printArray(array);}// 选择排序小-》大public static void selectionSort(int[] array) {int length = array.length;for (int i = 0; i < length; i++) {int min = i;for (int j = i + 1; j < length; j++) {if (array[min] > array[j]) {min = j;}}swap(array, i, min);}}// 选择排序大-》小public static void selectionSort2(int[] array) {int length = array.length;for (int i = 0; i < length; i++) {int max = i;for (int j = i + 1; j < length; j++) {if (array[max] < array[j]) {max = j;}}swap(array, i, max);}}// 插入排序 小-》大public static void insertionSort(int[] array) {int length = array.length;for (int i = 1; i < length; i++) {for (int j = i; j > 0; j--) {if (array[j] < array[j - 1]) {swap(array, j, j - 1);} else {break;}}}}// 希尔排序 大->小public static void shellSort(int[] array) {int n = array.length;int h = 1;while (h < n / 3)h = h * 3 + 1;while (h >= 1) {for (int i = 1; i < n; i++) {for (int j = i; j >= h; j = j - h) {if (array[j] > array[j - h]) {swap(array, j, j - h);}}}h /= 3;}}public static void swap(int[] array, int i, int j) {int t = array[i];array[i] = array[j];array[j] = t;}public static void printArray(int[] array) {for (int a : array) {System.out.print(a + " ");}System.out.println();}}
0 0
- 算法和数据结构-选择排序、插入排序及希尔排序 java实现
- Java实现选择排序、插入排序、希尔排序算法
- 算法系列(二)冒泡排序、选择排序、插入排序和希尔排序(Java实现)
- Java实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等
- 几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- 初级排序算法之冒泡、选择、插入、希尔排序(附Java实现和分析)
- 希尔排序,选择排序,插入排序 java
- 排序及选择算法的java实现(一)选择、冒泡、插入、希尔、归并、快排
- 选择排序、插入排序、希尔排序和冒泡排序-Java实现
- 冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序java实现
- 经典排序算法(二)--插入排序、希尔排序(Java实现)
- Java实现的排序算法及比较 [冒泡,选择,插入,归并,希尔,快排]
- java实现排序算法之插入排序(直接插入排序,折半插入排序,希尔排序)
- 数据结构-算法: 插入排序(希尔排序法)
- 数据结构-算法: 插入排序(希尔排序法)
- 基本排序算法(选择、插入、冒泡)和希尔排序
- 八大经典排序算法基本思想及代码实现(插入排序,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序,基数排序)
- 【算法】排序 (一):插入排序&希尔排序&选择排序&堆排序(C++实现)
- Hdu 2955 Robberies
- 逗比学树莓派之lcd1602显示
- 数据库 shard 分片存储
- bzoj 2178: 圆的面积并
- Opencv step by step - 鼠标事件
- 算法和数据结构-选择排序、插入排序及希尔排序 java实现
- 《北平无战事》有感
- 极光推送重要方法
- hibernate之12.many2many变形
- oracle SQL sample 随机抽样查询
- Ubuntu的软件源更新常见问题及解决
- AndroidStudio导入和签出SVN项目问题
- Objective-C之run loop详解
- oracle相关的linux系统内核参数详解(不断补充中)