博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaSE 学习参考:数组排序
阅读量:6193 次
发布时间:2019-06-21

本文共 839 字,大约阅读时间需要 2 分钟。

hot3.png

是数组操作常用操作之一,通过排序将数组中原来顺序按照升序(从小到大)或降序(从大到小)重新组织。数组排序算法很多,最常用的是冒泡排序。本文演示冒泡排序算法,下面以升序排序为例讲解。

可以理解为需要若干趟相邻元素交换,每趟交换的结果是最大元素排在最后。以下面包含10个元素数组为例。

5

7

2

9

4

0

8

6

3

1

 

每一趟相邻元素交换,原则是前者大于后者,则将两者交换,否则不动。

第一趟:10个元素相邻比较需要9次。最终9排在最后

5

7

2

9

4

0

8

6

3

1

5

7

2

9

4

0

8

6

3

1

5

2

7

9

4

0

8

6

3

1

5

2

7

9

4

0

8

6

3

1

5

2

7

4

9

0

8

6

3

1

5

2

7

4

0

9

8

6

3

1

5

2

7

4

0

8

9

6

3

1

5

2

7

4

0

8

6

9

3

1

5

2

7

4

0

8

6

3

9

1

5

2

7

4

0

8

6

3

1

9

 

第二趟:前9个相邻元素参与比较(因为最后一个已是最大的了,不需要参与)需要8次,最终8排在9之前。

依次类推,每趟比较得互剩余元素最大元素放上趟排序得到最大元素之前,因此需要9次。

代码如下:

public static void main(String[] args) {

 int[] ={5,7,2,9,4,0,8,6,3,1};

 for(int i=0;i<arr.length-1;i++){

 for(int j=i;j<arr.length-1-i;j++){

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

 int t=arr[j];

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

 arr[j+1]=t;

 }

 }

 }

 for(int i=0;i<arr.length;i++){

 System.out.print(arr[i]+" ");

 }

 

}

 

转载于:https://my.oschina.net/u/2971691/blog/845042

你可能感兴趣的文章
IIS提示“异常详细信息: System.Runtime.InteropServices.ExternalException: 无法执行程序”...
查看>>
【转】Java 项目UML反向工程转化工具
查看>>
django中数据库的相关操作
查看>>
iOS:缓存与Operation优先级问题
查看>>
Atitit. 项目文档目录大纲 总集合 v2
查看>>
dtrace4linux_Example
查看>>
Android 仿网易新闻v3.5:上下滑动的引导页
查看>>
[LeetCode] Line Reflection 直线对称
查看>>
AppFabric 版本区分
查看>>
Dedecms去掉URL中a目录的方法
查看>>
CentOS下配置Hadoop集群:java.net.NoRouteToHostException: No route to host问题的解决
查看>>
初识JavaScript
查看>>
CentOS运行级别和开机过程
查看>>
Windows Form调用R进行绘图并显示
查看>>
Atitit 游戏的原理与概论attilax总结
查看>>
苹果推送(APNs)ios push小结
查看>>
ArcGIS中的WKID
查看>>
系统剖析Android中的内存泄漏
查看>>
linux中权限的修改
查看>>
Spring Boot 自定义属性 以及 乱码问题
查看>>