冒泡排序算法 g语言
时间: 2023-07-21 07:17:06 浏览: 54
好的,以下是冒泡排序算法的 Golang 实现:
```go
package main
import "fmt"
func bubbleSort(arr []int) {
length := len(arr)
for i := 0; i < length-1; i++ {
for j := 0; j < length-i-1; j++ {
if arr[j] > arr[j+1] {
arr[j], arr[j+1] = arr[j+1], arr[j]
}
}
}
}
func main() {
arr := []int{5, 2, 8, 3, 9, 1, 4, 6, 7}
fmt.Println("Before sorting:", arr)
bubbleSort(arr)
fmt.Println("After sorting:", arr)
}
```
在这个实现中,我们定义了一个 `bubbleSort` 函数,接受一个整数切片作为输入,实现了冒泡排序算法。在 `main` 函数中,我们定义了一个整数切片 `arr`,用于测试 `bubbleSort` 函数的正确性。最后,我们输出排序前后的数组内容,以验证排序算法的正确性。
相关问题
c++语言冒泡排序算法
冒泡排序是一种简单且常用的排序算法,它通过不断比较相邻元素并交换位置来实现排序。下面是一个用 C 语言编写的冒泡排序算法示例:
```c
#include <stdio.h>
void bubbleSort(int arr[], int n) {
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;
}
}
}
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, n);
printf("排序结果:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
这段代码中,`bubbleSort` 函数实现了冒泡排序算法。`arr` 是待排序的数组,`n` 是数组的长度。通过两个嵌套的循环,每次比较相邻的两个元素并进行交换,直到整个数组按升序排列。最后在 `main` 函数中调用 `bubbleSort` 函数并输出排序结果。以上代码输出的结果为:11 12 22 25 34 64 90。
java语言冒泡排序算法
冒泡排序是一种简单的排序算法,适用于小规模数据的排序。
Java语言的冒泡排序算法可以使用嵌套循环实现。外层循环控制比较的轮数,内层循环控制每一轮比较的次数。
具体实现步骤如下:
1. 定义一个整型数组,存放待排序的数据。
2. 外层循环从第一个元素开始,一直比较到倒数第二个元素。
3. 内层循环从外层循环的下一个元素开始,一直比较到最后一个元素。
4. 如果相邻的两个元素顺序不正确,就交换它们的位置。
5. 每一轮比较结束后,最大的元素会“冒泡”到数组的末尾。
6. 外层循环继续进行下一轮比较,但这一次内层循环的比较次数应该减少1,因为已经确定了最大的元素。
7. 当外层循环结束后,整个数组就排好序了。
Java语言实现冒泡排序的代码如下:
```
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;
}
}
}
}
```
以上代码中,`arr`是待排序的数组,`n`是数组的长度,`i`和`j`分别表示外层循环和内层循环的下标。在每一次比较中,如果前一个元素比后一个元素大,就交换它们的位置。最终,整个数组就会按照从小到大的顺序排好序。