冒泡法排序c语言

郑梅宁 网易

冒泡排序是一种简单直观的排序算法,其基本思想是重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复进行的,直到没有再需要交换的元素为止,也就是说该数列已经排序完成。

下面是一个使用C语言实现冒泡排序的例子:

```c

include

void bubbleSort(int arr[], int n) {

int i, j, temp;

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

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

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

// 交换 arr[j] 和 arr[j+1]

temp = arr[j];

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

arr[j+1] = temp;

}

}

}

}

void printArray(int arr[], int size) {

int i;

for (i=0; i < size; i++)

printf("%d ", arr[i]);

printf("\n");

}

int main() {

int arr[] = {64, 34, 25, 12, 22, 11, 90};

int n = sizeof(arr)/sizeof(arr[0]);

printf("Unsorted array: \n");

printArray(arr, n);

bubbleSort(arr, n);

printf("Sorted array: \n");

printArray(arr, n);

return 0;

}

```

这段代码首先定义了一个`bubbleSort`函数来实现冒泡排序,然后定义了一个`printArray`函数用于打印数组。在`main`函数中,我们创建了一个整型数组,并调用`bubbleSort`函数对其进行排序,最后打印出排序前和排序后的数组。

冒泡排序的时间复杂度为O(n^2),其中n是数组的长度。尽管其效率不高,但它的实现非常简单,对于小规模数据集来说,还是可以接受的。

标签:

免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!