java之冒泡排序算法

冒泡排序的思想
它重复地走访需要排序的数列,按照已经规定好的排序顺序,每一次比较相邻两个元素,如果他们的顺序错误就把他们交换过来。 直到没有再需要交换的元素,该数列就排序完成。
冒泡排序的算法运作(由小到大的排列顺序):
有一个数组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

发布了68 篇原创文章 · 获赞 15 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_42913025/article/details/99690901