冒泡排序示例代码<1>
java优先队列自定义排序方式 " />

冒泡排序

冒泡排序是一种简单的排序算法,原理是不断比较相邻的两个元素大小,根据大小交换位置,在每一轮循环后将最大的元素移到最后,直至排序完毕。冒泡排序的时间复杂度为O(n^2),在实际应用中不太实用。

以下是冒泡排序的示例代码(Java实现):

```java

public static void bubbleSort(int[] arr){

int len = arr.length;

for(int i = 0; i < len - 1; i++){

for(int j = 0; j < len - i - 1; j++){

if(arr[j] > arr[j + 1]){

int tmp = arr[j];

arr[j] = arr[j + 1];

arr[j + 1] = tmp;

}

}

}

}

```

上述代码中,外层循环控制轮数,内层循环控制比较和交换。每一轮循环结束后,最大的元素就会被移至数组的最后面。

优先队列

优先队列是一种具有优先级的队列,每个元素都有一个优先级,高优先级的元素会先被取出。在Java中,可以使用PriorityQueue实现优先队列。

Java优先队列自定义排序方式

默认情况下,Java优先队列使用元素的自然顺序(即实现了Comparable接口的元素类)来比较,也可以通过传入Comparator实例来自定义排序方式。

以下是一个示例代码,演示如何定义自己的排序方式:

```java

// 定义一个Student类,含有两个字段name和score

class Student{

String name;

int score;

public Student(String name, int score){

this.name = name;

this.score = score;

}

}

// 定义一个按照分数降序排序的Comparator

class ScoreComparator implements Comparator{

public int compare(Student s1, Student s2){

return s2.score - s1.score;

}

}

public static void main(String[] args) {

// 创建一个按分数降序排序的优先队列

PriorityQueue queue = new PriorityQueue<>(new ScoreComparator());

// 加入三个学生

queue.offer(new Student("Tom", 80));

queue.offer(new Student("Jack", 90));

queue.offer(new Student("Mary", 85));

// poll出队

while(!queue.isEmpty()){

System.out.println(queue.poll().name);

}

}

```

上述代码中,定义了一个按照分数降序排序的Comparator,然后创建了一个优先队列,并传入该Comparator的实例。在加入元素时,会根据该Comparator的排序方式自动排序。

总结

本文介绍了冒泡排序及其Java实现,以及Java优先队列的基本使用和自定义排序方式的方法。冒泡排序是一种简单但效率较低的排序算法,优先队列可以在实现优先级队列等场景时发挥作用。

壹涵网络我们是一家专注于网站建设、企业营销、网站关键词排名、AI内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。

我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!

点赞(96) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部