为了账号安全,请及时绑定邮箱和手机立即绑定

java实现排序

标签:
Java

import java.util.Arrays;




public class SortDemo {

private static long[] arr = {6,5,2,7,1,8,4,3};

// private static long[] arr = {1,2,3,4,5,6,7,8};

private static int count = 0;

/**

* 冒泡排序

* O(n2)

*/

public static void bubble(){

long temp = Long.MIN_VALUE;

int len = arr.length;

for(int j = 0;j<len;j++){

for(int i = 0;i<len-1;i++){

if(arr[i]>arr[i+1]){

temp = arr[i+1];

arr[i+1] = arr[i];

arr[i] = temp;

}

}

}

}

/**

* 选择排序

* O(n2)

*/

public static void select(){

int len = arr.length;

long temp = Long.MIN_VALUE;

int index = 0;

for(int j = 0;j<len;j++){

index = j;

for(int i = j;i<len;i++){

if(arr[i]<arr[index]){

index = i;

}

}

temp = arr[j];

arr[j] = arr[index];

arr[index] = temp;

print();

}

}

/**

* 插入排序

* O(n2)

*/

public static void insert(){

int len = arr.length;

long temp;

for(int i=1;i<len;i++){

int j = i-1;

temp = arr[i];

while(j>=0 && temp<arr[j]){

arr[j+1] = arr[j];

j--;

}

arr[j+1] = temp;

print();

}

}

/**

* 快速排序

* O(N*longN)

*/

public static void quick(){

quick(arr,0,arr.length-1);

print();

}

private static long[] quick(long[] a,int lo,int hi){

if(hi<lo)return a;

long temp = 0;

int index = lo;

for(int i = lo;i<hi;i++){

if(a[i]<a[hi]){

temp = a[i];

a[i] = a[index];

a[index++] = temp;

}

}

temp = a[hi];

a[hi] = a[index];

a[index] = temp;

if(index==lo)return a;

quick(a,lo,index-1);

quick(a,index+1,hi);

return a;

}

/**

* 归并排序

* O(N*longN)

*/

public static void merge (){

merge(arr,0,arr.length-1);

print();

}

public static void merge(long[] a,int lo,int hi){

int mid = lo +(hi-lo)/2;

if(lo < hi){

merge(a,lo,mid);

merge(a,mid+1,hi);

merge(a,lo,mid,hi);

}

}

public static void merge(long[] a,int lo,int mid,int hi){

long[] temp = new long[hi-lo+1];

int i=lo,j=mid+1,index=0;

while(i<=mid&&j<=hi){

if(a[i]>a[j]){

temp[index++] = a[j++];

}else{

temp[index++] = a[i++];

}

}

while(i<=mid){

temp[index++] = a[i++];

}

while(j<=hi){

temp[index++] = a[j++];

}

System.arraycopy(temp, 0, a, lo, temp.length);

}

public static void print(){

System.out.println(Arrays.toString(arr));

}

public static void main(String[] args) {

merge();

}

}


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
移动开发工程师
手记
粉丝
39
获赞与收藏
243

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消