算法的一些小栗子4(归并排序)
来源:互联网 发布:会员视频源码 编辑:程序博客网 时间:2024/05/17 08:16
归并排序
//归并排序public class MergeSort { public void sort(int[] a,int left,int right){ if(left<right){ int middle=(left+right)/2; sort(a,left,middle); sort(a,middle+1,right); merge(a,left,middle,right);//合并 } } private void merge(int[] a, int left, int middle, int right) { int [] tempArray = new int[a.length]; int rightStart=middle+1; int temp = left; int third = left; //比较两个小数组相应下标位置的数组大小,小的先放进数组 while(left<=middle&&rightStart<=right){ if(a[left]<=a[rightStart]){ tempArray[third++]=a[left++]; }else{ tempArray[third++]=a[rightStart++]; } } //把左边数组剩余的元素放进数组 while (left<=middle){ tempArray[third++]=a[left++]; } //把右边数组剩余的元素放进数组 while (rightStart<=right){ tempArray[third++]=a[rightStart++]; } while (temp<=right){ a[temp]=tempArray[temp++]; } } public static void main(String[] args){ int[] a={34,12,15,77,64,28,98,38,10,8,49}; System.out.println("排序之前:"); for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } System.out.println(); System.out.println("================================="); MergeSort mergeSort = new MergeSort(); mergeSort.sort(a,0,a.length-1); System.out.println("排序之后:"); for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } }}
阅读全文
0 0
- 算法的一些小栗子4(归并排序)
- 算法的一些小栗子1(插入排序)
- 算法的一些小栗子2(选择排序)
- 算法的一些小栗子3(交换排序)
- 算法的一些小栗子6(递归算法)
- 算法的一些小栗子7(贪心算法)
- 算法的一些小栗子8(分治算法)
- 算法的一些小栗子9(动态规划算法)
- 算法的一些小栗子10(回溯算法)
- 算法的一些小栗子5(基数排序)
- 关于java反射的一些小栗子
- 自己写的归并排序算法的一个小例子
- 归并排序的算法
- 内部排序算法4(归并排序)
- ajax的小栗子
- 轮播图(小栗子)
- 排序算法集合(4)- Python实现的N路归并排序算法
- 归并排序--基础的算法
- 开启新的篇章
- poj 2773
- linux上搭建zookeeper集群
- SSM框架的基本搭建(Spring+Struts+Mybatis)
- "扇贝杯"南邮第二届软件和信息技术专业人才大赛题解
- 算法的一些小栗子4(归并排序)
- java常量池测试总结
- 线程的知识点总结1。Join线程的使用
- 二叉树的遍历非递归
- POJ
- Postgresql 地理位置操作
- 关于c语言srand函数
- 读文件到链表+界面管理
- JAVA异常处理