基本排序算法
来源:互联网 发布:微商代理授权系统源码 编辑:程序博客网 时间:2024/05/26 15:56
1. 插入排序法
/** * 插入排序法 * @param a */static void insertionSort( ArrayList<Integer> a){int j;for( int p = 1; p < a.size(); p++ ){Integer tmp = a.get(p);for( j = p; j > 0 && tmp.compareTo(a.get(j - 1)) < 0; j-- ) {System.out.println("change " + a.get(j) + " " + a.get(j - 1));a.set(j, a.get(j - 1));}a.set(j, tmp);System.out.println(" p = " + p + " change " + a.get(j) + " " + tmp);}}
2.希尔排序法
/** * 希尔排序 * @param a */static void shellSort( ArrayList<Integer> a ){int j;for( int gap = a.size() / 2; gap > 0; gap /= 2 ){for( int i = gap; i < a.size(); i++ ){Integer tmp = a.get(i);for( j = i; j >= gap && tmp.compareTo(a.get(j - gap)) < 0; j-=gap ){System.out.println("change " + a.get(j) + " " + a.get(j - gap));a.set(j, a.get(j - gap));}System.out.println(" i = " + i + " change " + a.get(j) + " " + tmp);a.set(j, tmp);}System.out.println(" gap = " + gap);}}
3. 归并排序
/** * 归并排序 * @param a * @param tmpArray * @param left * @param right */static void mergeSort( ArrayList<Integer> a, ArrayList<Integer> tmpArray, int left, int right ){if( left < right ){int center = ( left + right ) / 2;mergeSort(a, tmpArray, left, center);mergeSort(a, tmpArray, center + 1, right);merge(a, tmpArray, left, center + 1, right);}}static void merge( ArrayList<Integer> a, ArrayList<Integer> tmpArray, int leftPos, int rightPos, int rightEnd ){int leftEnd = rightPos - 1;int tmpPos = leftPos;int numElements = rightEnd - leftPos + 1;while( leftPos <= leftEnd && rightPos <= rightEnd ){if( a.get(leftPos).compareTo(a.get(rightPos)) <= 0 ){tmpArray.set(tmpPos++, a.get(leftPos++));}else{tmpArray.set(tmpPos++, a.get(rightPos++));}}while( leftPos <= leftEnd ){tmpArray.set(tmpPos++, a.get(leftPos++));}while( rightPos <= rightEnd ){tmpArray.set(tmpPos++, a.get(rightPos++));}for( int i = 0; i < numElements; i++, rightEnd--){a.set(rightEnd, tmpArray.get(rightEnd));}}
0 0
- 排序-基本排序算法
- 算法:基本排序算法
- 基本排序算法 - 基本知识点
- 排序算法基本思想
- 常用基本排序算法
- 算法记录 : 基本排序
- 基本排序算法
- 基本排序算法实现
- 基本排序算法
- 基本排序算法思想
- 基本排序算法
- 基本的排序算法
- 排序基本算法
- 基本排序算法
- 基本排序算法
- 基本排序算法总结
- 基本排序算法汇总
- 基本排序算法小结
- Highcharts事件
- dynamic web module 3.0 requires java 1.6 or newer
- Ogre创建光源
- WordPress 修改的用户登录 Cookie(Auth Cookie) 过期时间并
- Hash的冲突解决方案
- 基本排序算法
- matlab入门教程
- HQL 动态查询时参数绑定
- python读取文件,去掉换行符'\n'
- air 移动开发配置文件详解
- Sql Server 快速查看表结构(表描述及字段说明)
- fgets 之用法
- jQuery+PHP+Mysql实现输入自动完成提示的功能
- 检查打开的文件是不是ELF格式的文件,如果是就输出节头表的文件偏移