博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
冒泡排序
阅读量:4477 次
发布时间:2019-06-08

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

1 private static int[] bubbleSort(int[] arr) { 2         int k=arr.length-1,last=0;   //最后一次交换的位置,后面已经为排好序状态 3         if (arr==null||arr.length<2) { 4             return arr; 5         } 6         for(int i=arr.length-1;i>=0;i--){ 7             boolean flag=false;   //每次比较的时候都设置标志位,查看是否发送交换 8             for (int j = 0; j 
arr[j+1]) {10 last=j;11 swap(arr,j,j+1);12 flag=true; //发生交换后,标志位变为true13 }14 }15 k=last;16 //如果标志位不发生变化,则说明已处于排好序的状态17 if (!flag) {18 return arr;19 }20 }21 return arr;22 }23 private static void swap(int[] arr, int j, int i) {24 int tmp=arr[j];25 arr[j]=arr[i];26 arr[i]=tmp;27 }28 29 private static int[] creatArray(int length,int range) {30 if (length<1) {31 return null;32 }33 int arr[]=new int[length];34 for(int i=0;i
View Code

 

冒泡排序,为相邻两个元素进行比较,扫描的范围从0-N-1到1;时间复杂度为O(n方)

1 private static int[] bubbleSort(int[] arr) { 2         int k=arr.length-1,last=0;   //最后一次交换的位置,后面已经为排好序状态 3         if (arr==null||arr.length<2) { 4             return arr; 5         } 6         for(int i=arr.length-1;i>=0;i--){ 7             boolean flag=false;   //每次比较的时候都设置标志位,查看是否发送交换 8             for (int j = 0; j 
arr[j+1]) {10 last=j;11 swap(arr,j,j+1);12 flag=true; //发生交换后,标志位变为true13 }14 }15 k=last;16 //如果标志位不发生变化,则说明已处于排好序的状态17 if (!flag) {18 return arr;19 }20 }21 return arr;22 }

 

转载于:https://www.cnblogs.com/peng111/p/5768829.html

你可能感兴趣的文章
make install fping
查看>>
面试笔试题
查看>>
#loj3051 [十二省联考2019] 皮配
查看>>
MySql可视化工具MySQL Workbench使用教程
查看>>
个人站立会议第二阶段07
查看>>
云时代架构阅读笔记五——Web应用安全
查看>>
IOS 单击手势和cell点击冲突
查看>>
学习_HTML5_day3
查看>>
计算机网络与应用第二次笔记
查看>>
Django之ORM查询
查看>>
学习python第七天
查看>>
Flask基础(07)-->正则自定义转换器
查看>>
C++著名程序库的比较和学习经验(STL.Boost.GUI.XML.网络等等)
查看>>
Spring Boot构建RESTful API与单元测试
查看>>
【JavaScript你需要知道的基础知识~】
查看>>
谷歌搜索语法
查看>>
static 静态变量
查看>>
Java面试题(05)
查看>>
操作符重载
查看>>
Docker 安装及问题处理
查看>>