Java排序算法一:冒泡排序

冒泡排序(升序):

1,两个相邻的元素进行比较,大的数放在右边;数组中的元素两两比较完之后,数组中的最大的数的位置就是数组中的最后一个元素

2,每一轮比较都会找到当前数组中的最大值;下一轮需要比较的元素就不用包含已经找出来的元素;针对数组长度为n的数组,需要找n-1轮;

高亮标记的元素是下一轮实际上比较的元素,未高亮的元素已经是升序的

代码:

/**
 * 内层的排序(升序)
 */
public void forInner() {
	int arr[] = {9,3,4,5,2,1};
	//通过两两比较找到数组中的最大值,放到最后
	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;
		}
    System.out.println(Arrays.toString(arr));
	}	
}

/**
 * 冒泡排序(升序)
 */
public void maoPao() {
	int arr[] = {9,3,4,5,2,1};
	//通过两两比较找到数组中的最大值,放到最后
	for (int j = 0; j < arr.length - 1; j++) { //控制找的轮数
		//每一轮的冒泡比较
		for (int i = 0; i < arr.length - 1 - j; i++) { //0,5 6
			if (arr[i] > arr[i + 1]) { //左边的元素大于右边的元素
				//交换元素的位置
				int temp = arr[i];
				arr[i] = arr[i + 1];
				arr[i + 1] = temp;
			}
		}
	}
	System.out.println(Arrays.toString(arr));
}
原创文章 19 获赞 1 访问量 947

猜你喜欢

转载自blog.csdn.net/spring_man/article/details/105495648
今日推荐