admin 管理员组文章数量: 887021
2024年2月6日发(作者:sql不足位数左边补0)
java 排序算法代码大全
本文将介绍Java中常用的排序算法,包括冒泡排序、选择排序、插入排序、希尔排序、快速排序、归并排序、堆排序、计数排序和基数排序。每种排序算法都将附上详细的Java代码示例。
1. 冒泡排序
冒泡排序是最简单的排序算法,它每次将相邻的两个数比较,如果顺序不对,则交换它们的位置。该算法的时间复杂度为O(n^2)。
Java代码示例:
```java
public class BubbleSort {
public static void bubbleSort(int[] nums) {
int n = ;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (nums[j] > nums[j + 1]) {
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
}
}
```
2. 选择排序
选择排序通过不断选出未排序部分的最小元素,放到已排序部分的末尾,来达到排序的目的。该算法的时间复杂度也为O(n^2)。
3. 插入排序
插入排序将待排序的数据分为已排序和未排序两个部分,每次将未排序部分中的第一个元素插入到已排序部分中的正确位置。该算法的时间复杂度为O(n^2)。
4. 希尔排序
希尔排序是插入排序的改进版,它将待排序的数据分成若干个子序列,对每个子序列进行插入排序,最后合并成一个完整的有序序列。该算法的时间复杂度为O(n log n)。
5. 快速排序
6. 归并排序
堆排序是利用堆这种数据结构进行排序的算法,堆可以看作一棵完全二叉树,每个结点的值都大于或等于(小于或等于)其左右子节点的值。堆排序分为大根堆排序和小根堆排序,时间复杂度为O(n log n)。
8. 计数排序
计数排序是一种线性时间复杂度的排序算法,它利用一个计数数组来统计每个元素出现的次数,然后逐个将这些元素放入结果数组中。计数排序适用于元素范围比较小的数据,其时间复杂度为O(n+k)。
基数排序是一种非比较排序算法,它通过将待排序元素按照不同的位进行比较,从而达到排序的目的。基数排序适用于待排序元素可以分成若干位来比较的数据,其时间复杂度为O(d(n+k)),其中d为位数,k为基数。
总结
本文介绍了Java中常用的九种排序算法,涵盖了排序算法中的大部分内容。不同的排序算法有各自的特点和使用场景,选择适合自己的算法可以提高程序的效率,也可以深入了解排序算法的实现原理。
版权声明:本文标题:java 排序算法代码大全 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1707216652h512433.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论