冒泡排序思想:使用相邻的两个元素挨个比较一次,符合条件交换位置
需求:对数组{12,5,17,8,9}进行从小到大排序
1.把最大值放到数组的最右边
public static void getSort(int[] arr){
for(int i=0;i<arr.length-1;i++){
if(arr[i]>arr[i+1]){
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
2.把倒二大的放到倒二位置
for(int i=0;i<arr.length-1-1;i++){
if(arr[i]>arr[i+1]){
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
3.把倒三大的放到倒三位置
for(int i=0;i<arr.length-1-2;i++){
if(arr[i]>arr[i+1]){
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
…
以上为冒泡排序过程,使用循环进行冒泡排序为:
public class Demo2 {
public static void getSort(int[] arr){
for (int j=0;j<arr.length-1;j++){
for(int i=0;i<arr.length-1-j;i++){
if(arr[i]>arr[i+1]){
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
}
System.out.print("排序后数组为:");
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+",");
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr={13,89,6,83,29};
getSort(arr);
}
}