假设有一组数据 arr[]={2,0,3,4,5,7}
方法:开辟两个指针,指向如图,前后两两进行比较,大数据向后冒泡传递,小数据换到前面。
一次冒泡后,数组中最大的数据将到达正确位置。
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;}
}
要想让所有数据 到达正确位置,循环进行j次:
for(int j=0;j<arr.length;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;}}}
完整代码:
package Java.start;import java.util.Arrays;import com.sun.xml.internal.bind.v2.runtime.unmarshaller.XsiNilLoader.Array;public class BubbleSort {//冒泡排序public static void main(String[] args) {int[] arr= {2,0,3,4,5,7};sort(arr);System.out.println(Arrays.toString(arr));// for(int i=0;i<arr.length;i++) {
// System.out.println(arr[i]);
// }}public static void sort(int[] arr) {for(int j=0;j<arr.length;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;}}}}}
结果: