常见排序算法
来源:互联网 发布:吉祥兔源码下载 编辑:程序博客网 时间:2024/06/10 03:50
public static boolean less(Comparable v, Comparable t) { return v.compareTo(t) < 0; } public static void exch(Comparable[] a, int i, int j) { Comparable t = a[i]; a[i] = a[j]; a[j] = t; } public static void show(Comparable[] a) { for (int i = 0; i < a.length; i++) System.out.print(a[i] + " "); System.out.println(); } public static boolean isSorted(Comparable[] a) { int N = a.length; for (int i = 1; i < N; i++) if (less(a[i], a[i - 1])) return false; return true; }//工具类</span>
private static void BubbleSort(Comparable[] arr) { int N = arr.length; for (int i = 0; i < N - 1; i++) { for (int j = 0; j < N - 1 - i; j++) if (SortUtil.less(arr[j + 1], arr[j])) SortUtil.exch(arr, j + 1, j); }}//冒泡排序
private static void InsertSort(Comparable[] arr) { int N = arr.length; for (int i = 1; i < N; i++) { for (int j = i; j > 0 && SortUtil.less(arr[j], arr[j - 1]); j--) SortUtil.exch(arr, j, j - 1); } }//插入排序
private static void MergeSort(int lo, int hi) { if (hi <= lo) return; int mid = (hi + lo) / 2; MergeSort(lo, mid); MergeSort(mid + 1, hi); Merge(lo, mid, hi); } private static void Merge(int lo, int mid, int hi) { int i = lo, j = mid + 1; for (int k = lo; k <= hi; k++) aux[k] = arr[k]; for (int k = lo; k <= hi; k++) { if (i > mid) arr[k] = aux[j++]; else if (j > hi) arr[k] = aux[i++]; else if (SortUtil.less(arr[j], arr[i])) arr[k] = aux[j++]; else arr[k] = arr[i++]; } }//归并排序
private static void SelectSort(Comparable[] arr) { int N = arr.length; for (int i = 0; i < N - 1; i++) { int min = i; for (int j = i + 1; j < N; j++) if (SortUtil.less(arr[j], arr[min])) min = j; SortUtil.exch(arr, i, min); } }//选择排序
private static void Sort(Comparable[] arr) { int N = arr.length; int h = 1; while (h < N / 3) h = 3 * h + 1; while (h >= 1) { for (int i = h; i < N; i++) { for (int j = i; j >= h && SortUtil.less(arr[j], arr[j - h]); j -= h) { SortUtil.exch(arr, j, j - h); } } h = h / 3; } }//希尔排序
0 0
- 常见的排序算法
- 常见排序算法
- 常见排序算法代码
- 常见排序算法
- 常见排序算法总结
- 常见排序算法
- 常见排序算法学习
- 常见排序算法总结
- 常见的排序算法
- 常见排序算法分析
- 常见排序算法总结
- 常见排序算法
- 常见排序算法
- 常见排序算法介绍
- 常见排序算法小结
- 常见排序算法总结
- 常见经典排序算法
- 常见排序算法
- Spring mvc动态文件下载
- Linux下mysql数据库的数据导入导出
- 订餐系统中一些功能代码
- "No target device found."——Android Studio真机测试中遇到的问题
- Atitit.ioc 动态配置文件guice 设计原理
- 常见排序算法
- ip
- 欢迎使用CSDN-markdown编辑器
- Java排序-快速排序
- HihoCoder 1264 神奇字符串(暴力)
- React Native控件之PullToRefreshViewAndroid下拉刷新组件讲解(20)
- Atitit.跨语言 java c#.net php js常用的codec encode算法api 兼容性 应该内置到语言里面
- SSH全套视频教程下载地址
- 【VB.Net】使用SHA256进行简单的XOR文本加密与解密