package cn.tedu.day03;
/**
- 冒泡排序:
- 1、声明一个数组,存放8个元素;
- 2、
- @author Administrator
*
*/
public class ArrayDemo03 {
public static void main(String[] args) {
int[] arr={15,3,4,6,2,90,123,1};
for(int i=0;i<arr.length;i++){//次数
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){//每次都和下一个元素比较
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
```
}
}
System.out.println("排序后数组:");
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
```
}
}
这是普通的冒泡排序方法。
以下是优化过的冒泡排序方法。
package cn.tedu.day03;
public class SortedDemo {
public static void main(String[] args) {
int[] arr={15,3,4,6,2,90,123,1};
bubbleSorted(arr);
```
}
/**
* 冒泡排序
* @param arr
*/
public static void bubbleSorted(int arr[]){
boolean isSorted;
for(int i=0;i<arr.length;i++){//次数
isSorted=true;//假设剩下的元素已经排好序了
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){//每次都和下一个元素比较
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
isSorted=false;//一旦需要交换数组元素,说明剩下的元素没有排好序
}
}
System.out.println("排序的趟数:"+i);
if (isSorted){
break;//如果没有发生交换,说明剩下的元素已经排序完毕。
}
}
System.out.println("排序后数组:");
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
```
}