经典算法之冒泡排序

【排序算法】冒泡排序|选择排序|插入排序|sort函数|归并排序|快速排序 先上张别人总结的图 冒泡排序 O(N)~O(N2) 稳定(指的是相等数字的相对顺序不会改变) 第一趟最大的泡泡一定在最底端,以此类推。 最外层的循环指对n-1个元素进行操作。(n-1就够了其他元素都操作完了最后一个... 阅读详情

 开始接触算法的时候,第一个学的就是“冒泡排序”,我那个年代当时在网络上有句很流行的话:“美得冒泡”,所以一看到这个排序法的名字,当时就被勾起来兴趣......


 

 冒泡排序算法需要遍历几次数组。每次遍历都要比较连续相邻的元素,如果某一对相邻元素是降序,则互换它们的值,否则,保持不变。由于较小的值像“气泡”一样逐渐浮想顶部,而较大的值沉向底部,所以叫冒泡排序。

冒泡排序的图解是:


总结一句话就是:连续比较相邻的元素,降序则互换。有n个数,共需要比较n-1趟,第i趟,需要比较n-i次。

BubbleSort.Java

[java] view plain copy
 
print?
  1. public class BubbleSort {//时间复杂度O(n^2)  
  2.       
  3.     public static void display(int[] array){  
  4.         for(int i=0;i<array.length;i++){    
  5.              System.out.print(array[i]+"\t");    
  6.          }    
  7.          System.out.println();   
  8.     }  
  9.     //冒泡排序  
  10.     public static void bubbleSort(int[] list){  
  11.         int n=list.length;  
  12.         for(int i=1;i<n;i++){//总共比较n-1趟  
  13.             for(int j=0;j<n-i;j++){//第i趟比较n-i次  
  14.                 if(list[j]>list[j+1]){  
  15.                     int temp;  
  16.                     temp=list[j];  
  17.                     list[j]=list[j+1];  
  18.                     list[j+1]=temp;               
  19.                 }  
  20.             }  
  21.               
  22.             System.out.print("第"+(i)+"轮排序结果:");    
  23.             display(list);  
  24.         }  
  25.           
  26.     }  
  27.     public static void main(String args[]){  
  28.         int[] list={25,6,56,24,9,12,55};     
  29.         System.out.println("冒泡排序前的list是:");  
  30.         for(int i=0;i<list.length;i++){  
  31.             System.out.print(list[i]+" ");  
  32.         }  
  33.         System.out.println();  
  34.         bubbleSort(list);//进行冒泡排序  
  35.         System.out.println();  
  36.         System.out.println("冒泡排序后的list是:");  
  37.         for(int i=0;i<list.length;i++){  
  38.             System.out.print(list[i]+" ");  
  39.         }  
  40.     }  
  41. }  
[java] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. public class BubbleSort {//时间复杂度O(n^2)  
  2.       
  3.     public static void display(int[] array){  
  4.         for(int i=0;i<array.length;i++){    
  5.              System.out.print(array[i]+"\t");    
  6.          }    
  7.          System.out.println();   
  8.     }  
  9.     //冒泡排序  
  10.     public static void bubbleSort(int[] list){  
  11.         int n=list.length;  
  12.         for(int i=1;i<n;i++){//总共比较n-1趟  
  13.             for(int j=0;j<n-i;j++){//第i趟比较n-i次  
  14.                 if(list[j]>list[j+1]){  
  15.                     int temp;  
  16.                     temp=list[j];  
  17.                     list[j]=list[j+1];  
  18.                     list[j+1]=temp;               
  19.                 }  
  20.             }  
  21.               
  22.             System.out.print("第"+(i)+"轮排序结果:");    
  23.             display(list);  
  24.         }  
  25.           
  26.     }  
  27.     public static void main(String args[]){  
  28.         int[] list={25,6,56,24,9,12,55};     
  29.         System.out.println("冒泡排序前的list是:");  
  30.         for(int i=0;i<list.length;i++){  
  31.             System.out.print(list[i]+" ");  
  32.         }  
  33.         System.out.println();  
  34.         bubbleSort(list);//进行冒泡排序  
  35.         System.out.println();  
  36.         System.out.println("冒泡排序后的list是:");  
  37.         for(int i=0;i<list.length;i++){  
  38.             System.out.print(list[i]+" ");  
  39.         }  
  40.     }  
  41. }  

算法分析:

最差的情况下,冒泡排序算法需要进行n-1次遍历。第一次遍历需要n-1次比较,第二次遍历需要n-2次比较,依次进行;因此比较总数为:

(n-1)+(n-2)+...+2+1=n(n-1)/2=O(n2)

冒泡排序的时间复杂度为O(n2)


冒泡算法的改进:

冒泡排序的效率比较低,所以我们要通过各种方法改进。在上例中,第四轮排序之后实际上整个数组已经是有序的了,最后两轮的比较没必要进行。

注意:如果某次遍历中没有发生交换,那么就不必进行下一次遍历,因为所有元素已经排好了。

BubbleImprovedSort.Java

[java] view plain copy
 
print?
  1. public class BubbleImprovedSort {  
  2.     public static void display(int[] array){  
  3.         for(int i=0;i<array.length;i++){    
  4.              System.out.print(array[i]+"\t");    
  5.          }    
  6.          System.out.println();   
  7.     }  
  8.     //冒泡排序  
  9.     public static void bubbleSort(int[] list){  
  10.             int n=list.length;  
  11.             boolean NeedNextPass=true;  
  12.             for(int i=1;i<n&&NeedNextPass;i++){//总共比较n-1趟,如果某趟遍历中没有交换,那么不需要下次遍历,因为元素以排好  
  13.                 NeedNextPass=false;  
  14.                 for(int j=0;j<n-i;j++){//第i趟比较n-i次  
  15.                     if(list[j]>list[j+1]){  
  16.                         int temp;  
  17.                         temp=list[j];  
  18.                         list[j]=list[j+1];  
  19.                         list[j+1]=temp;       
  20.                         NeedNextPass=true;  
  21.                     }  
  22.                 }  
  23.                 System.out.print("第"+(i)+"轮排序结果:");    
  24.                 display(list);  
  25.             }  
  26.         }  
  27.         public static void main(String args[]){  
  28.             int[] list={25,6,56,24,9,12,55};   
  29.             System.out.println("改进的冒泡排序:");  
  30.             System.out.println("排序前的list是:");  
  31.             for(int i=0;i<list.length;i++){  
  32.                 System.out.print(list[i]+" ");  
  33.             }  
  34.             System.out.println();  
  35.             bubbleSort(list);//进行冒泡排序  
  36.             System.out.println();  
  37.             System.out.println("排序后的list是:");  
  38.             for(int i=0;i<list.length;i++){  
  39.                 System.out.print(list[i]+" ");  
  40.             }  
  41.         }  
  42.   
  43. }  
[java] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. public class BubbleImprovedSort {  
  2.     public static void display(int[] array){  
  3.         for(int i=0;i<array.length;i++){    
  4.              System.out.print(array[i]+"\t");    
  5.          }    
  6.          System.out.println();   
  7.     }  
  8.     //冒泡排序  
  9.     public static void bubbleSort(int[] list){  
  10.             int n=list.length;  
  11.             boolean NeedNextPass=true;  
  12.             for(int i=1;i<n&&NeedNextPass;i++){//总共比较n-1趟,如果某趟遍历中没有交换,那么不需要下次遍历,因为元素以排好  
  13.                 NeedNextPass=false;  
  14.                 for(int j=0;j<n-i;j++){//第i趟比较n-i次  
  15.                     if(list[j]>list[j+1]){  
  16.                         int temp;  
  17.                         temp=list[j];  
  18.                         list[j]=list[j+1];  
  19.                         list[j+1]=temp;       
  20.                         NeedNextPass=true;  
  21.                     }  
  22.                 }  
  23.                 System.out.print("第"+(i)+"轮排序结果:");    
  24.                 display(list);  
  25.             }  
  26.         }  
  27.         public static void main(String args[]){  
  28.             int[] list={25,6,56,24,9,12,55};   
  29.             System.out.println("改进的冒泡排序:");  
  30.             System.out.println("排序前的list是:");  
  31.             for(int i=0;i<list.length;i++){  
  32.                 System.out.print(list[i]+" ");  
  33.             }  
  34.             System.out.println();  
  35.             bubbleSort(list);//进行冒泡排序  
  36.             System.out.println();  
  37.             System.out.println("排序后的list是:");  
  38.             for(int i=0;i<list.length;i++){  
  39.                 System.out.print(list[i]+" ");  
  40.             }  
  41.         }  
  42.   
  43. }  


泛型冒泡排序:

例1:元素实现comparable接口。排序是字符串string,string实现了comparable接口

BubbleGenericTypeSort .java

[java] view plain copy
 
print?
  1. <span style="font-size:24px;">public class BubbleGenericTypeSort {  
  2.     //泛型冒泡排序,使用Comparable对元素进行排序  
  3.         public static <E extends Comparable<E>> void bubbleGenericTypeSort(E[] list){  
  4.             int n=list.length;  
  5.             for(int i=1;i<n;i++){//总共比较n-1趟  
  6.                 for(int j=0;j<n-i;j++){//第i趟比较n-i次  
  7.                     if(list[j].compareTo(list[j+1])>0){  
  8.                         E temp;  
  9.                         temp=list[j];  
  10.                         list[j]=list[j+1];  
  11.                         list[j+1]=temp;               
  12.                     }  
  13.                 }  
  14.             }  
  15.         }  
  16.           
  17.     public static void main(String[] args) {  
  18.         // TODO Auto-generated method stub  
  19.         /*Integer[] list={2,1,56,34,9,6,55,20,37,22}; //泛型的Integer ,包装类都实现了Comparable接口 
  20.         System.out.println("冒泡排序前的list是:"); 
  21.         for(int i=0;i<list.length;i++){ 
  22.             System.out.print(list[i]+" "); 
  23.         } 
  24.         bubbleGenericTypeSort(list);//进行冒泡排序 
  25.         System.out.println(); 
  26.         System.out.println("冒泡排序后的list是:"); 
  27.         for(int i=0;i<list.length;i++){ 
  28.             System.out.print(list[i]+" "); 
  29.         }*/  
  30.         String[] list={"John","Mike","Jack","Bob","Zoo","Meache","Abrow","Richer"}; //泛型的String ,包装类都实现了Comparable接口  
  31.         System.out.println("冒泡排序前的list是:");  
  32.         for(int i=0;i<list.length;i++){  
  33.             System.out.print(list[i]+" ");  
  34.         }  
  35.         bubbleGenericTypeSort(list);//进行冒泡排序  
  36.         System.out.println();  
  37.         System.out.println("冒泡排序后的list是:");  
  38.         for(int i=0;i<list.length;i++){  
  39.             System.out.print(list[i]+" ");  
  40.         }  
  41.     }  
  42. }  
  43.   
  44. </span>  
[java] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. <span style="font-size:24px;">public class BubbleGenericTypeSort {  
  2.     //泛型冒泡排序,使用Comparable对元素进行排序  
  3.         public static <E extends Comparable<E>> void bubbleGenericTypeSort(E[] list){  
  4.             int n=list.length;  
  5.             for(int i=1;i<n;i++){//总共比较n-1趟  
  6.                 for(int j=0;j<n-i;j++){//第i趟比较n-i次  
  7.                     if(list[j].compareTo(list[j+1])>0){  
  8.                         E temp;  
  9.                         temp=list[j];  
  10.                         list[j]=list[j+1];  
  11.                         list[j+1]=temp;               
  12.                     }  
  13.                 }  
  14.             }  
  15.         }  
  16.           
  17.     public static void main(String[] args) {  
  18.         // TODO Auto-generated method stub  
  19.         /*Integer[] list={2,1,56,34,9,6,55,20,37,22}; //泛型的Integer ,包装类都实现了Comparable接口 
  20.         System.out.println("冒泡排序前的list是:"); 
  21.         for(int i=0;i<list.length;i++){ 
  22.             System.out.print(list[i]+" "); 
  23.         } 
  24.         bubbleGenericTypeSort(list);//进行冒泡排序 
  25.         System.out.println(); 
  26.         System.out.println("冒泡排序后的list是:"); 
  27.         for(int i=0;i<list.length;i++){ 
  28.             System.out.print(list[i]+" "); 
  29.         }*/  
  30.         String[] list={"John","Mike","Jack","Bob","Zoo","Meache","Abrow","Richer"}; //泛型的String ,包装类都实现了Comparable接口  
  31.         System.out.println("冒泡排序前的list是:");  
  32.         for(int i=0;i<list.length;i++){  
  33.             System.out.print(list[i]+" ");  
  34.         }  
  35.         bubbleGenericTypeSort(list);//进行冒泡排序  
  36.         System.out.println();  
  37.         System.out.println("冒泡排序后的list是:");  
  38.         for(int i=0;i<list.length;i++){  
  39.             System.out.print(list[i]+" ");  
  40.         }  
  41.     }  
  42. }  
  43.   
  44. </span>  


例2.元素实现自定义的Comparator比较器接口


BubbleComparator.java

[java] view plain copy
 
print?
  1. import java.util.ArrayList;  
  2. import java.util.Comparator;  
  3. import java.util.List;  
  4.   
  5. public class BubbleComparator {  
  6.      public static <E>  void bubbleComparatorSort(List<E> list,Comparator<? super E> comparator){//<? super E>是E的父类  
  7.          int n=list.size();  
  8.         for(int i=1;i<n;i++){//总共比较n-1趟  
  9.             for(int j=0;j<n-i;j++){//第i趟比较n-i次  
  10.                 if(comparator.compare(list.get(j), list.get(j+1))==1){  
  11.                     E temp;  
  12.                     temp=list.get(j);  
  13.                     list.set(j, list.get(j+1));  
  14.                     list.set(j+1, temp);                          
  15.                 }  
  16.             }  
  17.         }  
  18.      }  
  19.           
  20.     public static void main(String[] args) {  
  21.         // TODO Auto-generated method stub        
  22.         List<GeometricObject> list=new ArrayList<GeometricObject>();  
  23.         list.add(new Rectangle(4,5,"矩形4,5"));  
  24.         list.add(new Circle(3,"圆3"));  
  25.         list.add(new Square(3,"正方形3"));  
  26.         list.add(new Rectangle(2,6,"矩形2,6"));  
  27.         list.add(new Circle(4,"圆4"));  
  28.           
  29.         System.out.println("冒泡排序前的list是:");  
  30.         for(int i=0;i<list.size();i++){  
  31.             System.out.print(list.get(i).getName()+":"+list.get(i).getArea()+"  ");  
  32.         }  
  33.         bubbleComparatorSort(list, new GeometricObjectComparator());//进行冒泡排序  
  34.         System.out.println();  
  35.         System.out.println("冒泡排序后的list是:");  
  36.         for(int i=0;i<list.size();i++){  
  37.             System.out.print(list.get(i).getName()+":"+list.get(i).getArea()+"  ");  
  38.         }  
  39.           
  40.     }  
  41.     
  42.     public static class GeometricObjectComparator implements Comparator<GeometricObject> {  
  43.         GeometricObjectComparator(){}  
  44.        
  45.         @Override  
  46.         public int compare(GeometricObject o1, GeometricObject o2) {  
  47.             // TODO Auto-generated method stub  
  48.             float area1=o1.getArea();  
  49.             float area2=o2.getArea();  
  50.             if(area1<area2){  
  51.                 return -1;  
  52.             }  
  53.             else if(area1==area2)  
  54.                 return 0;  
  55.             else   
  56.                 return 1;  
  57.         }  
  58.           
  59.     }  
  60. }  
[java] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. import java.util.ArrayList;  
  2. import java.util.Comparator;  
  3. import java.util.List;  
  4.   
  5. public class BubbleComparator {  
  6.      public static <E>  void bubbleComparatorSort(List<E> list,Comparator<? super E> comparator){//<? super E>是E的父类  
  7.          int n=list.size();  
  8.         for(int i=1;i<n;i++){//总共比较n-1趟  
  9.             for(int j=0;j<n-i;j++){//第i趟比较n-i次  
  10.                 if(comparator.compare(list.get(j), list.get(j+1))==1){  
  11.                     E temp;  
  12.                     temp=list.get(j);  
  13.                     list.set(j, list.get(j+1));  
  14.                     list.set(j+1, temp);                          
  15.                 }  
  16.             }  
  17.         }  
  18.      }  
  19.           
  20.     public static void main(String[] args) {  
  21.         // TODO Auto-generated method stub        
  22.         List<GeometricObject> list=new ArrayList<GeometricObject>();  
  23.         list.add(new Rectangle(4,5,"矩形4,5"));  
  24.         list.add(new Circle(3,"圆3"));  
  25.         list.add(new Square(3,"正方形3"));  
  26.         list.add(new Rectangle(2,6,"矩形2,6"));  
  27.         list.add(new Circle(4,"圆4"));  
  28.           
  29.         System.out.println("冒泡排序前的list是:");  
  30.         for(int i=0;i<list.size();i++){  
  31.             System.out.print(list.get(i).getName()+":"+list.get(i).getArea()+"  ");  
  32.         }  
  33.         bubbleComparatorSort(list, new GeometricObjectComparator());//进行冒泡排序  
  34.         System.out.println();  
  35.         System.out.println("冒泡排序后的list是:");  
  36.         for(int i=0;i<list.size();i++){  
  37.             System.out.print(list.get(i).getName()+":"+list.get(i).getArea()+"  ");  
  38.         }  
  39.           
  40.     }  
  41.     
  42.     public static class GeometricObjectComparator implements Comparator<GeometricObject> {  
  43.         GeometricObjectComparator(){}  
  44.        
  45.         @Override  
  46.         public int compare(GeometricObject o1, GeometricObject o2) {  
  47.             // TODO Auto-generated method stub  
  48.             float area1=o1.getArea();  
  49.             float area2=o2.getArea();  
  50.             if(area1<area2){  
  51.                 return -1;  
  52.             }  
  53.             else if(area1==area2)  
  54.                 return 0;  
  55.             else   
  56.                 return 1;  
  57.         }  
  58.           
  59.     }  
  60. }  
一文学懂经典算法系列之:冒泡排序 本文关键字:经典算法、排序算法、交换排序、冒泡排序、算法实践。冒泡排序也称气泡排序,是经典的交换排序方法。整个过程就是在无序区中对相邻元素进行两两比较,将不满足相对顺序的一对儿元素进行交换,再进行下一对儿元素的比较。每一趟冒泡后,就会送一个最小的元素达到最上端。在无序区中重复这个过程,直到所有的元素有序。... 阅读详情

相关推荐

六自由度机器人(机械臂)运动学建模及运动规划系列(一)——简介

毕业设计做了六轴机器人相关的课题,做完之后学到很多,在这里分享一下。

weixin_47849087的博客 2万+

c语言冒泡排序_图文解析:如何用PLC梯形图实现冒泡排序算法?

作者注:此程序仅供欣赏,作为科普知识了解即可。实际工程当中PLC一般都有专用的排序指令或函数,不需要我们亲自写排序算法。什么是冒泡排序?学习过一点C语言的朋友,对冒泡排序的概念应该并不陌生。冒泡排序是一种非常基础的排序算法,它的过程是将N个待排序数据当中的两个相邻数据进行比较,如果前者小于后者,则将前者和后者调换位置,然后比较下一对,直到最大的排在列尾。这样反复N-1次,就可以将所有的元素完成从小...

weixin_39649405的博客 1121

极验第四代滑块验证码破解(三):滑块轨迹构造

极验第四代滑块验证码破解(三):滑块轨迹构造声明 声明 原创文章,请勿转载! 本文内容仅限于安全研究,不公开具体源码。维护网络安全,人人有责。 本文关联文章超链接:

帯泪的鱼的博客 8623

图解冒泡排序法

冒泡排序 冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序(即跟我们要的顺序相反)则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。 接下来我们通过一个实例讲解来学冒泡排序: 原始数组:3, 9, -1, 10, 20 下图是对冒泡排序过程的一个纤细描述: 从上图的过程中我们可以得到以下...

Gebo的博客 1395

配置Dot1q终结子接口实现跨设备VLAN间通信示例

示例图 一.实验目的 1.配置Dot1q终结子接口实现跨设备VLAN间通信示例 二.注意事项 1.Dot1q终结子接口和QinQ终结子接口不支持透传不带VLAN Tag的报文, 收到不带VLAN Tag的报文会直接丢弃 2.由于三层以太网子接口不支持VLAN报文,当它收到VLAN报文时,会将VLAN报文当成是 非法报文而丢弃,因此,需要在子接口上将VLAN Tag剥掉,也就是需要VLAN终结 三.VLAN终结简介 1.VLAN终结的实质包含两个方面: ①.对接口接收到报文,剥除VLAN标

qq_44751470的博客 7097

选择排序和冒泡排序

看到一个写的很好的排序算法讲解,保留下来!! 1.选择排序法(以从小到大排序为例) 算法思想: A.在未排序序列中找到最小元素,存放到排序序列的起始位置 B.从剩余未排序元素中继续寻找最小元素,然后放到已排序序列的末尾 C.以此类推,直到所有元素均排序完毕 选择排序法动图演示 代码: #include <bits/stdc++.h> using namespace std; //选择排序 void PaiXu(int arr[200],int length){ int

m0_55984237的博客 532

基于 YOLO + SAM 的自动图像标注实战

摘要: 本文提出一种基于YOLO检测和SAM分割的自动化数据标注流水线方案,通过YOLO定位目标并生成检测框,再以检测框为提示驱动SAM完成精细分割,最终输出YOLO格式的标注文件。该方案将人工标注升级为半自动流程,显著提升标注效率,尤其适用于多类别、大规模图像的实例级标注需求。代码模块化设计支持模型灵活替换,并集成异常处理与进度可视化功能。虽依赖YOLO检测质量且对小目标存在局限,但作为工程落地方案,可有效降低私有数据集构建成本,适用于工业检测、遥感等场景的冷启动标注。

qq_64366203的博客 1144

选择排序与冒泡排序区别与比较

选择排序(select sort):每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。如果在 C 语言中去实现选择排序,我们最常见的就是两层循环的实现方式。从选择排序的思想出发,我们都不难看出: 寻找最小的元素需要一层循环 逐个被选出也是需要一层循环的N-S图如下: 算法如下: for i = [0,

圈圈的博客 1万+

微信小程序转发功能异常报错 由于小程序违规分享功能暂时无法使用的解决办法

小程序右上角转发功能被封,不代表你违规了,而可能是你没认证、没备案!很多功能都是“先合规、后开发”,踩坑就晚了,别像我一样绕了三圈才发现问题。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2603

《UDS协议从入门到精通》系列——图解0x27:安全访问

什么是安全访问服务?应用场景和基本原理是什么?全网最直观详细的图解UDS-0x27:安全访问服务!!

车载系统攻城狮 7229

经典算法冒泡排序

经典算法:冒泡排序 冒牌排序概念 自行百度这里不过多赘述。 问题引入 有这样一个数组,请用冒泡排序。int[] arr={5,2,4,9,6,7} 批话不多说直接上代码。 //int[] arr={2,5,7,9,6,7} int L=arr.length;//把数组长度定义为L for(int i=0;i<L-1;i++){ //外层for循环,有几个数循环几次 for(int j=0;j<L-1-i;j++){//内层控制每个数比几次 if(arr

starjv的博客 194

<PLC><socket><汇川>汇川PLC使用socket与其他控制器(如上位机)通讯模板程序示例

以上介绍了汇川PLC通用socket通讯的示例,事实上,汇川的官方手册也有使用示例,可以直接仿照使用,也可以加以修改。

用沸腾的热血,支付我们的人生吧! 3247

经典算法之冒泡排序算法

经典算法 就算法而言,我们主要学习的是数学+思维+逻辑+数据结构实现功能,所以我们主要学习是思维也是解决问题的思路,然后用逻辑去实现它 文章目录经典算法一、什么是冒泡排序?二、代码实现总结 提示:这可是面试当中笔试或机试最常见的算法,敲黑板划重点!!!! 一、什么是冒泡排序? 冒泡排序的原理就是,相邻的元素之间进行两两比较,如果前者大于后者,则交换位置,否则不变 ,每一趟依次向后进行第 1 步,直到最后一个元素。 二、代码实现 public class 冒泡排序 { public static

zhx__的博客 1465

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

用现代AI工具简化经典算法:轻松掌握冒泡排序

最新接入DeepSeek-V3模型,点击下载最新版本InsCode AI IDE 标题:用现代AI工具简化经典算法:轻松掌握冒泡排序 在编程的世界里,算法是构建高效软件的核心。其中,冒泡排序(Bubble Sort)作为最基础且易于理解的排序算法之一,一直是初学者入门的经典选择。然而,对于许多编程新手而言,理解和实现这一算法可能仍然充满挑战。幸运的是,随着人工智能技术的发展,如今我们有了像InsC...

inscode_075的博客 738

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

从冒泡排序到智能编程:如何用现代工具重构经典算法

最新接入DeepSeek-V3模型,点击下载最新版本InsCode AI IDE 从冒泡排序到智能编程:如何用现代工具重构经典算法 在计算机科学的广阔天地中,经典的排序算法始终是学习编程的重要基石。其中,冒泡排序作为入门级的经典算法之一,以其简单易懂的逻辑和直观的操作步骤,成为无数程序员初学时的必修课。然而,随着技术的发展和需求的变化,传统的手动编码方式已经无法满足快速开发和高效迭代的需求。今天,...

EmeraldWolf23的博客 480

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

用AI重新定义经典算法——以冒泡排序为例

开发AI智能应用,就下载InsCode AI IDE,一键接入DeepSeek-R1满血版大模型! 标题:用AI重新定义经典算法——以冒泡排序为例 在计算机科学领域,经典的排序算法如冒泡排序、快速排序等一直是学习编程和算法设计的基础。然而,随着人工智能技术的飞速发展,传统算法的学习与应用方式正在被彻底颠覆。本文将以冒泡排序为例,结合最新的AI开发工具InsCode AI IDE以及其背后的强大AI...

EmeraldTiger56的博客 898

十大经典算法之冒泡排序

十大经典算法之冒泡排序 public class TenSort { public static void main(String[] args) { //定义数组长度 int arraySize = 10; int [] array = new int[arraySize]; Random random = new Random(); //随机生成10随机数,并赋值给数组 for (int i = 0; i < arraySize; i++){ array[i] = random.nextInt(5

mnimxq的博客 146

用现代技术解锁经典算法:轻松掌握冒泡排序的艺术

最新接入DeepSeek-V3模型,点击下载最新版本InsCode AI IDE 标题:用现代技术解锁经典算法:轻松掌握冒泡排序的艺术 在计算机科学的浩瀚星空中,冒泡排序无疑是最经典的算法之一。它不仅是一个入门级的学习工具,更是理解排序算法原理和优化思维的重要起点。然而,对于初学者来说,编写正确的冒泡排序代码可能会成为一个挑战。尤其是当面对复杂的逻辑、边界条件以及性能优化时,即使是经验丰富的开发者...

SapphireFox37的博客 881

决胜经典算法之冒泡排序

本场Chat是《决胜经典算法》系列的首场,也是众多经典算法里较为简单的一个。 本系列将包含如排序、查找、深度优先/广度优先搜索等等经典算法。仅仅排序部分就包含了10种经典的排序算法,适用于不同的场景,后续逐个给大家分享。 通过本场Chat,您将得到如下内容: 冒泡排序法的原理; 动图演示冒泡排序的整个流程; 冒泡排序算法的流程图; 冒泡排序法的伪代码实现; 使用Java...

GitChat 490

【经典算法】冒泡排序

Java实现经典算法之冒泡排序

yubao0723的专栏 5753

java 冒泡排序 经典算法题

// 冒泡排序:经典算法题。// 有一组数字 2,10,8,20,11,把这组数按照从大到小的顺序排列出来。20,11,10,8,2// 2,10,8,20,11 // 找出最大的数,放到第一位(1,2,3,4,5)// 20,10,8,2,11 // 从剩下的4个数中,找最大的(2,3,4,5)//...

dierang8440的博客 293

经典算法:冒泡排序

C语言的经典小白算法---------冒泡排序

weixin_64118200的博客 371

java:数组冒泡排序经典算法

java:数组冒泡排序经典算法 需求:给定一个数组,进行从小到大排序,并输出 思路:1、比较相邻两个元素,左边元素大于右边元素,则左右交换 ​ 2、每一对相邻元素向后依次这样比较,直到已比较交换出最大元素放置在数组最后一位; ​ 3、遍历数组,再次循环上述步骤,除去上一轮和已经选出的最大元素(随着选出的最大数值愈来愈多,两两比较次数会相应减少) ​ 实例代如下: public class Test { public static void main(String[] args){ //定

TylerYue的博客 540

经典算法之冒泡排序java实现

冒泡排序的基本逻辑是每轮比较得出区间中最大或者最小的值并且将该值放到合适的位置,并且区间会随着比较的进行而缩小,直到区间缩小到最小,排序完成。该算法就像水泡一个一个的浮出水面一样,所以有一个形象的名字-冒泡排序。 实现代码如下,附简单分析 package com.llg.mybatis; import org.junit.Test; import java.util.Arrays; p...

lilianggui的博客 171
上一篇: 算法之红黑树
下一篇: 项目名那里出现了红色感叹号?怎么去除?
Footloose_
博客等级 码龄10年 254粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值