线性结构 冒泡排序 c语言代码
时间: 2023-07-09 12:39:52 浏览: 51
冒泡排序是一种简单直观的排序算法,其基本思想是通过相邻元素之间的比较和交换来把小的数交换到前面,把大的数交换到后面。以下是冒泡排序的C语言代码示例:
```c
void bubbleSort(int arr[], int n) {
int i, j;
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
// Swap arr[j] and arr[j+1]
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
```
在上述代码中,我们首先定义了一个冒泡排序的函数 bubbleSort(),其中 arr[] 表示待排序的数组,n 表示数组的大小。在函数中,我们使用了两层循环,其中外层循环用于控制比较的轮数,内层循环用于比较相邻元素的大小,如果前一个元素比后一个元素大,则将它们进行交换。在每一轮比较结束后,未排序部分的最大元素就会被交换到数组的最后面,因此在下一轮比较时就可以不再考虑该元素。最终,待排序的数组就会被排序好了。
相关问题
数据结构与算法 c语言
C语言是一种高效的编程语言,非常适合实现数据结构和算法。下面是一些常用的数据结构和算法,以及它们在C语言中的实现:
1. 数组:C语言中数组是最基本的数据结构,可以用来存储同类型的元素,例如整数、字符或浮点数等。数组的元素可以通过下标来访问和修改。
2. 链表:链表是一种动态数据结构,可以在运行时添加或删除元素。C语言中可以使用结构体和指针来实现链表。其中结构体表示链表的节点,指针用来连接不同的节点。
3. 栈:栈是一种后进先出(LIFO)的数据结构。C语言中可以使用数组或链表来实现栈。
4. 队列:队列是一种先进先出(FIFO)的数据结构。C语言中可以使用数组或链表来实现队列。
5. 递归:递归是一种函数调用自身的技术。C语言中可以使用递归来实现一些算法,例如斐波那契数列。
6. 排序算法:C语言中可以实现各种排序算法,例如冒泡排序、选择排序、插入排序、快速排序、归并排序等。
7. 查找算法:C语言中可以实现各种查找算法,例如线性查找、二分查找、哈希表等。
以上是一些常用的数据结构和算法在C语言中的实现方法,希望对你有所帮助。
数据结构(c语言版)
数据结构是计算机存储和管理数据的方式,它研究的是数据的存储结构和逻辑结构。数据的逻辑结构可以分为四种分类:线性结构、树形结构、图形结构和集合结构。
顺序栈是一种常见的数据结构,它使用结构体来定义,通常包括一个存储栈元素的数组和一个记录栈顶位置的变量。顺序栈的操作包括入栈、出栈、判空和判满等。
冒泡排序是一种简单的排序算法,它的核心思想是通过交换相邻的元素,将较大的元素逐渐浮到数组的最后。冒泡排序的实现需要两层循环,外层循环控制比较轮数,内层循环控制每轮比较的次数。
以下是一个使用冒泡排序对字符串进行排序的C语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 20
void bubble(char *arr, int count) {
int i, j;
char temp;
for (j = count; j > 1; j--) {
for (i = 0; i < j - 1; i++) {
if (arr[i + 1] < arr[i]) {
temp = arr[i + 1];
arr[i + 1] = arr[i];
arr[i] = temp;
}
}
printf("输出结果[%s]\n", arr);
}
}
int main() {
char array[MAX];
int count;
printf("请输入排序的字符串:\n");
gets(array);
count = strlen(array);
bubble(array, count);
return 0;
}
```