Java基础-----数组排序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuming226/article/details/84707236
冒泡排序

两个相邻位置比较,如果前面的元素比后面的元素大就交换位置。每次外循环都能确定一个最大值在数组中的位置。

package StringBufferPackage;

public class Demo6_BubbleSort {
	public static void main(String[] args) {
		int[] arr = {3,6,5,9,7,45,32,22};
		BubbleSort(arr);
		print(arr);
	}

	private static void print(int[] arr) {
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + "\t");
		}
		
	}

	private static void BubbleSort(int[] arr) {
		for (int i = 0; i < arr.length - 1; i++) {
			for (int j = 0; j < arr.length - i -1; j++) {//-1是为了防止数组越界,-i为了提高效率
				if(arr[j] > arr[j + 1]) {
					int temp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = temp;
				}
				
			}
		}
		
	}
}
选择排序

用一个索引位置上的元素,一次与其他索引位置上的元素比较,小的在前面大的在后面。每次外循环可以确定一个最小值在数组中的位置。

package StringBufferPackage;

public class Demo7_SelectSort {
	public static void main(String[] args) {
		int[] arr = {3,6,5,9,7,45,32,22};
		selectSort(arr);
		print(arr);
	}

	private static void print(int[] arr) {
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + "\t");
		}
		
	}

	private static void selectSort(int[] arr) {
		for (int i = 0; i < arr.length; i++) {
			for (int j = i + 1; j < arr.length; j++) {
				if (arr[i] > arr[j]) {
					int temp = arr[i];
					arr[i] = arr[j];
					arr[j] = temp;
				}
			}
		}
		
	}
}

猜你喜欢

转载自blog.csdn.net/yuming226/article/details/84707236