冒泡排序、选择排序demo

排序demo

public class Sort {

	//测试
    public static void main(String[] args) {
		Sort sort = new Sort();
		int[] arr = { 49, 38, 65, 97, 76, 13, 27, 49, 2 };
		sort.bubbleSort(arr);
        //sort.bubbleSort(arr1);
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + " ");
		}
		System.out.println();
	}

	/**
	 * 冒泡排序
	 */
	public void bubbleSort(int[] arr) {
		boolean flag = true;
		int i = arr.length - 1;
		while (i > 0 && flag) {
			flag = false;// flag置为false,如果本躺没有发生交换,则不会执行下一趟排序
			for (int j = 0; j < i; j++) {
				if (arr[j] > arr[j + 1]) {// 逆序则交换
					flag = true;// flag置为true,表示本趟排序发生了交换
					int temp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = temp;
				}
			}
			i--;
		}

	}

	/**
	 * 选择排序
	 */
	public void selectSort(int[] arr) {
		for (int i = 0; i < arr.length; i++) {
			int k = i;
			for (int j = i + 1; j < arr.length; j++) {
				if (arr[j] < arr[k]) {
					k = j;
				}
			}
			if (k != i) {
				int temp = arr[i];
				arr[i] = arr[k];
				arr[k] = temp;
			}
		}
	}

}

posted @ 2021-12-13 20:39  _小斑鸠  阅读(29)  评论(0)    收藏  举报