冒泡排序、选择排序

冒泡排序(for循环)

从小到大的顺序

比较相邻的两个元素,如果第一个元素比第二个元素大话,就交换位置

已经将最大的值放到最后面了,进行的第一轮

第一层for循环控制的轮数 第二层for循环控制的交换的次数

import java.util.Arrays;
public class Demo1 {
	public static void main(String[] args) {
		//冒泡排序
		int[] arr = {2,1,4,3};
		for (int i = 0; i < arr.length -1; i++) {//控制的第几轮
			//第一轮  交换几次 3次  i= 0   4-1-0
			//第二轮 交换2次  i= 1     4-1-1
			//第三轮  1次 i= 2        4-1-2
			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(Arrays.toString(arr));
	}

}

选择排序(for循环)

原理:找出最小值的索引下标,然后最小值和第一个数进行交换

然后再从剩余的里面再找最小值的下标,放到第二位

import java.util.Arrays;

public class Demo1 {
	public static void main(String[] args) {
		//选择排序
		int[] arr = {2,1,4,3};
		for (int i = 0; i < arr.length; i++) {//控制轮数
			int minIndex =  i;//最小值的索引
			for (int j = i; j < arr.length; j++) {
				//通过循环找到最小值的索引,赋值给minIndex这一个变量的
				if (arr[j] < arr[minIndex]) {
					minIndex = j;
				}
				
				
				
			}
			//在最外层的for循环里面进行交换
			int temp = arr[i];
			arr[i] = arr[minIndex];
			arr[minIndex] = temp;
			
			
			
		}
		System.out.println(Arrays.toString(arr));
	}

}

上一篇:11.python排序算法之冒泡排序、简单选择排序,二元选择排序、直接插入排序


下一篇:选择排序(Java实现)