Java函数实现排序算法的代码示例
发布时间:2023-06-03 23:27:01
排序算法是计算机科学中的基本算法之一,是对一组数据按照一定的顺序排列的过程。Java是一门面向对象的编程语言,其作为一种非常流行的编程语言,自然也有各种各样的排序算法实现。下面我们就来看一些Java函数实现的排序算法代码示例。
1. 冒泡排序
冒泡排序,是一种简单的排序算法。它重复地遍历数列,比较相邻的元素,如果顺序不对就交换它们的位置。每次遍历都可以确定一个未排序元素的位置。
public static void bubbleSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
2. 选择排序
选择排序,也是一种简单的排序算法。它的基本思想是,首先在未排序的数列中找到最小的元素,然后将其放到数列的起始位置,接着再从剩余未排序的元素中寻找最小的元素,放到以前已排序的元素后面。重复这个过程,直到所有元素都排好序。
public static void selectSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
int min = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[min]) {
min = j;
}
}
int temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
3. 插入排序
插入排序,也是一种简单的排序算法。它的基本思想是将未排序的元素插入已排序的元素中。在插入元素之前,已排序的元素的值都比待排序的元素小。插入时将已排序的元素中比待排序的元素大的元素向右移,为待排序的元素创造出一个正确的位置。
public static void insertSort(int[] arr) {
int n = arr.length;
for (int i = 1; i < n; ++i) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
}
4. 希尔排序
希尔排序,也是一种简单的排序算法。它是基于插入排序的一种改进,先将数组分成若干个子序列,对子序列进行插入排序,然后在逐步缩小子序列的规模进行插入排序,最后子序列的规模为1时,进行最后一次插入排序即可。
public static void shellSort(int[] arr) {
int n = arr.length;
for (int gap = n / 2; gap > 0; gap /= 2) {
for (int i = gap; i < n; i += 1) {
int temp = arr[i];
int j;
for (j = i; j >= gap && arr[j - gap] > temp; j -= gap) {
arr[j] = arr[j - gap];
}
arr[j] = temp;
}
}
}
5. 快速排序
快速排序,是一种常用的排序算法。它的基本思想是,在待排序的元素中选取一个关键元素(pivot),将所有小于它的元素移动到它的左边,大于它的元素移动到它的右边。然后对左右两部分再递归调用快速排序,直到所有元素都排好序。
public static void quickSort(int[] arr, int low, int high) {
if (low < high) {
int pi = partition(arr, low, high);
quickSort(arr, low, pi - 1);
quickSort(arr, pi + 1, high);
}
}
private static int partition(int[] arr, int low, int high) {
int pivot = arr[high];
int i = (low - 1);
for (int j = low; j < high; j++) {
if (arr[j] < pivot) {
i++;
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
int temp = arr[i + 1];
arr[i + 1] = arr[high];
arr[high] = temp;
return i + 1;
}
以上是一些Java函数实现的排序算法代码示例,可以供大家参考、学习。这些排序算法有些简单,有些复杂,但都是十分常见的排序算法。在实际编程中可以根据不同的需求选择适合的排序算法。
