冒泡排序
思路
1.依次对数组中每对相邻的元素比对,如果前者比后者大,那么它们就交换位置,这样一趟下来总能把一个最大元素送到末尾的位置
2.可以这么说,每一趟排序进行之后使得数组后面的有序部分规模在增大,前面的无序部分规模在减小
3.经过这样多次交换之后数组就有序了
代码
package sort; public class BubbleSort { public static void main(String[] args) { // TODO Auto-generated method stub int [] a= {6,-1,3,-3,2,9,1,2,3}; bubblesort(a); for(int i=0;i<a.length;i++) { System.out.printf("%d ",a[i]); } System.out.println(); } //冒泡排序 public static void bubblesort(int[] arr) { int len=arr.length; int temp; boolean flag=false;//表示是否交换过 for(int i=0;i<len;i++) { for(int j=0;j<len-i-1;j++) { if(arr[j]>arr[j+1]) { temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; flag=true; } } if(!flag) {//如果一趟一次都没有交换过直接退出 break; }else { flag=false;//重置false下一轮判断 } } } }