冒泡排序

冒泡排序的基本思想是:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换 过来。

冒泡排序的核心部分是双重嵌套循环。所以冒泡排序的时间复杂度是 O(N^2)。这是一个非常高的时间复杂度。这也是冒泡排序法的一个缺点。



题目:

现在分别有 5 个人的名字和分数:huhu 5 分、haha 3 分、xixi 5 分、hengheng 2 分和 gaoshou 8 分。请按照分数从高到低,输出他们的名字。即应该输出 gaoshou、huhu、xixi、haha、hengheng。
package _4_9_test;

import java.util.Scanner;

import javax.lang.model.element.NestingKind;
import javax.xml.ws.handler.MessageContext.Scope;

import _12_26_test.thirteen;

public class EightTwo {

	public static class Student {
		String name;
		int score;
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner scanner = new Scanner(System.in);
		System.out.println("输入学生人数:");
		int n = scanner.nextInt();

		Student stu[] = new Student[n];
		Student temp = new Student();

		for (int i = 0; i < n; i++) {
			// 这里的每个数组对象都要实例化
			stu[i] = new Student();
			stu[i].name = scanner.next();
			stu[i].score = scanner.nextInt();
		}

		// 冒泡排序法
		boolean flag = false;
		while (!flag) {
			flag = true;
			for (int i = 0; i < stu.length - 1; i++) {
				if (stu[i].score > stu[i + 1].score) {
					temp = stu[i + 1];
					stu[i + 1] = stu[i];
					stu[i] = temp;
					flag = false;
				}
			}
		}

		for (int i = stu.length - 1; i >= 0; i--) {
			System.out.print(stu[i].name + " ");
		}

	}

}

posted @ 2020-04-16 11:04  西红柿里没有番茄  阅读(235)  评论(0编辑  收藏  举报