Discuss / Java / 练习

练习

Topic source

魔渁

#1 Created at ... [Delete] [Delete and Lock User]

public static void main(String[] args) {

Integer[] ns = { 28, 12, 89, 73, 65, 18, 96, 50, 8, 36 };

// 排序前:

System.out.println(Arrays.toString(ns));

// TODO:

Arrays.sort(ns,Collections.reverseOrder());

// 排序后:

System.out.println(Arrays.toString(ns));

if (Arrays.toString(ns).equals("[96, 89, 73, 65, 50, 36, 28, 18, 12, 8]")) {

System.out.println("测试成功");

} else {

System.out.println("测试失败");

}

}

魔渁

#2 Created at ... [Delete] [Delete and Lock User]
// TODO:3.1选择排序
		for (int i = 0; i < ns.length - 1; i++) {
			// 记录最大值的索引
			int index = i;
			for (int j = i + 1; j < ns.length; j++) {
				if (ns[index] < ns[j]) {
					index = j;
				}
			}
			int tmp = ns[i];
			ns[i] = ns[index];
			ns[index] = tmp;
		}
		// TODO:3.2冒泡排序
		for (int i = 0; i < ns.length - 1; i++) {
			for (int j = 0; j < ns.length - i - 1; j++) {
				if (ns[j] < ns[j + 1]) {
					// 交换ns[j]和ns[j+1]:
					int tmp = ns[j];
					ns[j] = ns[j + 1];
					ns[j + 1] = tmp;
				}
			}
		}

		// TODO:3.3插入排序
		for (int i = 1; i < ns.length; i++) {
			for (int j = i; j > 0; j--) {
				if (ns[j] > ns[j - 1]) {
					int temp = ns[j - 1];
					ns[j - 1] = ns[j];
					ns[j] = temp;
				} else {
					// 只比前一个即可,因为前面是已排序部分
					break;
				}
			}

		}

  • 1

Reply