- 博客(5)
- 收藏
- 关注
原创 我对归并排序的理解
归并排序总体来说比较简单,其适应场所是对已经排序好的几个序列整合成一个总的排序好的序列。根据其特点,对于已经排序好的几个序列,只需依次取其第一个元素比较,较小的放在新序列里。对于一个数组的情况,先将其拆分,再二路归并排序。 具体代码实现如下(以整型数组排序为例):pubic static viod mergeSort(int a[],int left,int right){ if(left
2016-03-08 14:47:22 1739
原创 我对希尔排序的理解
希尔排序,即组内分组排序,它是建立在其他排序方法上的一种排序方法,它通过逐渐减小分组间隔,使得序列越来越有序。具体代码如下(以整型数组排为例):public static void shellSort(int a[]){ for(int gap = (a.length+1)/2;gap>0;){ for(int i = 0;i<a.length-gap;i++)//总排序趟数
2016-03-08 14:18:32 467
原创 快速排序代码及实现(优化)
传统的快速排序是目前性能最快的排序方法,其在平均情况下的时间复杂度为O(nlogn,)但快速排序性能不稳定,在已经排好序或接近排好序的情况下时间复杂度为O(n*n),分析其原因在于其总是选取序列的第一个元素作为枢轴,而其右侧总是比枢轴大的数,所以一轮下来只能排一个数,所以采用随机数算法讲序列任意一个数与第一个数交换,再把第一个数作为枢轴进行排序。 具体代码如下(以整型数组排序为例):public
2016-03-08 13:49:48 439
原创 Java杭电2072
单词数 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 40505 Accepted Submission(s): 9733 Problem Description lily的好朋友xiaoou333最近很空,他想了一件
2016-03-03 21:03:31 595
原创 我对几种常见排序算法的理解
一、冒泡排序 核心代码如下:以升序为例 private static void bubble(int[] a) { for(int i=0;i<a.length-1;i++){//变量i控制冒泡的轮数,冒出的值从最大的到倒数第二大,共n-1轮) boolean flag = true;//优化 for(int j=0;j<a.leng
2016-03-03 18:13:56 549
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人