首先我们了解下什么是冒泡排序:

冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,我想你是不会再无聊地把他们俩交换一下的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。

冒泡排序的时间复杂度是n^2;

当有N个数需要排列时,按照冒泡排序的思想,需要进行N-1的排序,每次排序将最大或最小的数放到数组的尾部(每次内部排序完后那么下次只需比较除最后一个数外的数组的其他的数,因为最后一个数已经符合最大或最小的要求)

public static void main(String[] args) {
//定义一个数组,长度为10
int arr[] = new int[10];
//随机生成0到20的随机数填充数组
for(int i = 0;i<arr.length;i++){
arr[i] =(int)( Math.random()*20);
}
//输出未排序前的数组
for(int i = 0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
//换行
System.out.println();
//进行冒泡排序
for(int i =0;i<arr.length-1;i++)
//第二层循环,最大的数排到数组底部
for(int j = 0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){
int temp;
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
//输出查看结果
for(int i = 0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}

  

最新文章

  1. MySQL安装(转)
  2. libevent源码深度剖析
  3. WPF 窗口在右下角出现,识别分辨率
  4. go lang学习笔记——channel机理及调度理解
  5. Codeforces Round #312 (Div. 2)B. Amr and The Large Array 暴力
  6. error userinfo error pos 5 友盟分享 网页分享(无新浪微博客户端)
  7. EL表达式 functions String处理函数
  8. qwtplot3D安装——终结解决方案(YOUYOU版)
  9. 【webpack】webpack-dev-server生猛上手——让我们来搭一个webpack的微服务器吧!
  10. 201521123090 《Java程序设计》第7周学习总结
  11. Django - - - -视图层之视图函数(views)
  12. Spring mvc学习指南
  13. maven相关配置
  14. 安装SQL 2005 出现警告 ,32位ASP.NET已经注册,需要注册64位
  15. BugkuCTF sql注入
  16. (笔记)AT91SAM9260的启动过程详细解说
  17. HDU5919 SequenceⅡ
  18. Android基础部分再学习---activity的状态保存
  19. url-pattern / /*匹配
  20. 第11课 enum,sizeof,typedef分析

热门文章

  1. Macpro搭建java自动化(selenium+chrome)
  2. [转]maven中scope详解
  3. C#三种常用的读取XML文件的方法
  4. 根据md5去重文件
  5. Selenium 2自动化测试实战8(控制浏览器)
  6. mingw gcc 静态 static 编译 dav1d libdav1d.a
  7. 【HANA系列】SAP HANA SLT在表中隐藏字段并传入HANA的方法
  8. java中String中的endsWith()方法
  9. Java基础/网络经验
  10. Python_Onlineh_Hmework(基础篇,持续更新中...)