冒泡排序的思想
它重复地走访需要排序的数列,按照已经规定好的排序顺序,每一次比较相邻两个元素,如果他们的顺序错误就把他们交换过来。 直到没有再需要交换的元素,该数列就排序完成。
冒泡排序的算法运作(由小到大的排列顺序):
有一个数组a[10],用变量i表示它的下标(i从0开始)——
1.比较两个相邻元素a[i]和a[i+1],如果a[i]>a[i+1],就交换这两个数的位置;
2.重复执行第一步,直到比较到最后一对的时候(例:首次是a[8]和a[9],此 时,a[9]的值为该数组的最大值,这个值属于有序数列);
3.对所有元素(除了有序数列里的元素),重复执行第一步和第二步,每执行完一次,都会找到当前比较的数里最大的那个(有序数列就会增加一个)
4.随着参与比较的元素越来越少,最终没有任何一对元素需要比较的时候,排序完成。
代码一
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
int [] arr = {10,9,4,11,5};
int[] m=sort(arr);
for(int i:m) {
System.out.print(i+" ");
}
}
private static int[] sort(int[] arr) {
int[] b =Arrays.copyOf(arr, arr.length);
for(int i=0;i<b.length-1;i++) {
for(int j=0;j<b.length-i-1;j++){
if(b[j]>b[j+1]) {
int temp =b[j];
b[j]=b[j+1];
b[j+1]=temp;
}
}
}
return b;
}
}
代码二
import java.util.Arrays;
public class Test1 {
public static void main(String[] args) {
int[] sourceArray = {10,1,5,56,0,11};
int[] m=sort(sourceArray);
for(int i:m) {
System.out.println(i);
}
}
public static int[] sort(int[] sourceArray) {
int[] arr =Arrays.copyOf(sourceArray, sourceArray.length);
for(int i =1;i<arr.length;i++) {
boolean flag = true;
for(int j=0;j<arr.length;i++) {
if(arr[j]>arr[j+1]) {
int temp =arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
flag =false;
}
}
if(flag) {
break;
}
}
return arr;
}
}
喜欢我的可以关注我,我们可以一起交流学习
微信公众号:
让我爱上它Computer
qq群:473989408