桶排序(heap sort)-Java实现

版权声明:作者微信 2992860292, QQ同号 https://blog.csdn.net/qq_40723748/article/details/84927359
public static void heapSort(int[] a) {
		int i, j, k;
		int temp;
		int n = a.length;
		for (i = n / 2 - 1; i >= 0; i--) {
			while (2 * i + 1 < n) {
				j = 2 * i + 1;
				if (j + 1 < n)
					if (a[j] < a[j + 1])
						j++;
				if (a[i] < a[j]) {
					temp = a[i];
					a[i] = a[j];
					a[j] = temp;
					i = j;
				} else
					break;
			}
		}
		for (i = n - 1; i > 0; i--) {
			temp = a[0];
			a[0] = a[i];
			a[i] = temp;
			k = 0;
			while (2 * k + 1 < i) {
				j = 2 * k + 1;
				if (j + 1 < i)
					if (a[j] < a[j + 1])
						j++;
				if (a[k] < a[j]) {
					temp = a[k];
					a[k] = a[j];
					a[j] = temp;
					k = j;
				} else
					break;
			}
		}
	}

猜你喜欢

转载自blog.csdn.net/qq_40723748/article/details/84927359
今日推荐