用c语言编写对84209按由小到大的顺序排列用起泡排序法
时间: 2024-05-15 15:18:51 浏览: 10
可以采用以下C语言代码实现:
```
#include <stdio.h>
void bubble_sort(int arr[], int n)
{
int i, j, temp;
for (i = 0; i < n; i++)
{
for (j = 0; j < n - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main()
{
int arr[] = { 8, 4, 2, 0, 9 };
int n = sizeof(arr) / sizeof(arr[0]);
bubble_sort(arr, n);
printf("Sorted array in ascending order:\n");
for (int i = 0; i < n; i++)
printf("%d ", arr[i]);
return 0;
}
```
该算法基于冒泡排序,时间复杂度为O(n^2)。
相关问题
写一个函数,用“起泡法”对输入的10个字符按由小到大顺序排列。用c语言编写程序
好的,下面是用 C 语言编写的起泡法排序程序:
```c
#include <stdio.h>
void bubble_sort(char arr[], int len) {
int i, j;
char temp;
for(i = 0; i < len - 1; i++) {
for(j = 0; j < len - 1 - i; j++) {
if(arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
char arr[10];
int i;
printf("请输入10个字符:\n");
for(i = 0; i < 10; i++) {
scanf("%c", &arr[i]);
}
bubble_sort(arr, 10);
printf("排序后的结果为:\n");
for(i = 0; i < 10; i++) {
printf("%c ", arr[i]);
}
printf("\n");
return 0;
}
```
代码中,我们定义了一个 `bubble_sort` 函数,用于实现起泡法排序。同时,在 `main` 函数中,我们输入了 10 个字符,然后调用 `bubble_sort` 函数进行排序,最后输出排序后的结果。
注意,这里输入字符时,需要注意换行符的问题,可以使用 `getchar` 函数将输入的换行符清除掉。
用c语言编写函数,利用起泡法,对输入的10个字符串由小到大进行排序
好的,我可以为您提供帮助。以下是一个用C语言编写的基于起泡法的字符串排序函数的示例代码:
```
#include <stdio.h>
#include <string.h>
void bubbleSort(char arr[][50], int n) {
for(int i = 0; i < n - 1; i ++) {
for(int j = 0; j < n - i - 1; j ++) {
if(strcmp(arr[j], arr[j+1]) > 0) {
char tmp[50];
strcpy(tmp, arr[j]);
strcpy(arr[j], arr[j+1]);
strcpy(arr[j+1], tmp);
}
}
}
}
int main() {
char arr[10][50];
int i,n;
printf("请输入10个字符串:\n");
//读入10个字符串
for(i = 0; i < 10; i ++) {
scanf("%s", arr[i]);
}
n = sizeof(arr) / sizeof(arr[0]);
//调用起泡排序函数
bubbleSort(arr, n);
//输出排好序的字符串
printf("按字典序从小到大排好序的字符串如下:\n");
for(i = 0; i < n; i ++) {
printf("%s\n", arr[i]);
}
return 0;
}
```
这个函数使用了两层循环,每一次将相邻的两个字符串进行比较,如果前一个字符串大于后一个字符串,则交换它们的位置。整个排序过程会进行n-1次外层循环,每次外层循环都可以将当前最大的字符串排至正确位置。最终,数组中的所有字符串就会按照字典序从小到大排好序了。