算法学习日志(一)

来源:互联网 发布:php支付宝支付开发流程 编辑:程序博客网 时间:2024/06/05 04:22

看了MIT的算法导论视频,觉得很不错,就用JAVA把视频里的算法写了出来。

插入排序

private void insertSort(int[] a){int now,tmp;for(int i = 1;i < a.length; ++i){now = i;                tmp=a[i];for(int j=i-1;j>-1; --j){if(tmp<a[j]){        a[now]=a[j];--now;}else {break;}}a[now]=tmp;}}

归并排序


private void mergeSort(int[] a){if(a.length==1){return;}else{int i = 0;int[] b = new int[a.length/2],c = new int[a.length-a.length/2];for(int j = 0;i<a.length/2;++i,++j){b[j] = a[i];}for(int j=0;i<a.length;++i,++j){c[j] = a[i];}mergeSort(b);mergeSort(c);int k = 0, l = 0;i=0;do{if(k==b.length){a[i] = c[l];++i;++l;}else if(l==c.length){a[i] = b[k];++i;++k;}else if(b[k]<c[l]){a[i] = b[k];++i;++k;}else{a[i] = c[l];++i;++l;}} while(i<a.length);}}

原创粉丝点击