C语言一串数字冒泡排序
时间: 2023-10-14 15:26:00 浏览: 64
可以回答该问题。冒泡排序的原理是比较相邻的元素,若顺序不对就交换它们,一轮比较后最大的元素会沉到最底下。以下是C语言实现冒泡排序的一段代码:
```c
#include <stdio.h>
int main() {
int num[] = {5, 2, 8, 1, 3};
int temp;
int i, j;
int len = sizeof(num) / sizeof(num[0]);
for (i = 0; i < len - 1; i++) {
for (j = 0; j < len - 1 - i; j++) {
if (num[j] > num[j + 1]) {
temp = num[j];
num[j] = num[j + 1];
num[j + 1] = temp;
}
}
}
for (i = 0; i < len; i++) {
printf("%d ", num[i]);
}
return 0;
}
```
该代码以数组 {5, 2, 8, 1, 3} 为例,将其进行冒泡排序后输出结果为 1 2 3 5 8。
相关问题
c语言冒泡排序字符串
C语言中的冒泡排序可以用来对一组字符串进行排序,其基本思路是通过不断比较相邻的两个元素,将大的元素交换到后面,实现排序的目的。
下面是C语言实现字符串冒泡排序的代码:
```c
#include <stdio.h>
#include <string.h>
void bubble_sort(char str[][20], int n)
{
int i, j;
char temp[20];
for(i=0; i<n-1; i++)
{
for(j=0; j<n-i-1; j++)
{
if(strcmp(str[j], str[j+1]) > 0)
{
strcpy(temp, str[j]);
strcpy(str[j], str[j+1]);
strcpy(str[j+1], temp);
}
}
}
}
int main()
{
char str[10][20] = {"hello", "world", "apple", "banana", "cat", "dog", "elephant", "flower", "grape", "house"};
int n = 10;
int i;
bubble_sort(str, n);
for(i=0; i<n; i++)
{
printf("%s\n", str[i]);
}
return 0;
}
```
其中,char str[][20]表示一个二维字符数组,用来存储需要排序的字符串;n表示字符串的个数;strcmp函数用来比较两个字符串的大小,如果前者小于后者,返回负数;如果前者等于后者,返回0;如果前者大于后者,返回正数。
7-2 字符串的冒泡排序c语言
冒泡排序是一种简单直观的排序算法,通过多次遍历待排序的字符串,比较相邻的两个元素大小,如果顺序不对则交换它们的位置,重复这个过程直到全部元素都排好序为止。
在C语言中实现字符串的冒泡排序可以按照以下步骤:
首先,定义一个函数bubbleSort,该函数接收一个字符串数组和字符串数组的长度作为参数。
在函数内部,使用两层循环遍历字符串数组,外层循环控制比较的轮数,内层循环用于实际比较相邻字符串的大小并进行交换。
在内层循环中,我们需要使用strcmp函数比较两个字符串的大小,并且使用strcpy函数进行字符串的交换操作。
在每一轮的比较中,如果发现相邻的两个字符串顺序不对,则进行交换操作。
经过多轮的比较和交换操作,字符串数组中的元素会逐渐被排好序。
最后,排序完成后的字符串数组就可以在函数外部进行打印或者其他操作了。
总的来说,字符串的冒泡排序算法十分简单直观,通过多次比较和交换操作,可以将字符串数组中的元素按照一定的顺序排列。在C语言中,我们可以通过定义函数和使用字符串处理函数来实现这个算法。
阅读全文