冒泡算法实例

此示例是先将输入的数组用一个空的 for循环来将输入的数组进行计数,以更好的处理数组。

在升序排列函数中,用两层 for来嵌套,第一层for是用来对数组中各个组元按顺序进行操作,第而成for是将第一层for指明的组元与其他组元进行比较,大数冒泡小数沉底从而实现排序。

降序排列函数同理,区别仅时对组元进行的排序方式不同,实现方法是一样的。

#include "stdio.h"
#define MAXNUMBIT 1000    //数组最大储存单元

void Sort_Ascend(int x,char y[]);   // 升序排列函数
void Sort_Descend(int x,char y[]);  // 降序排列函数

int main() {
	char num[MAXNUMBIT];
	int b;
	printf("输入要排列的数组:\n");
	scanf("%s", &num);

	for (b = 0; num[b] != '\0'; b++)
		;                   //计算数组组元个数并储存到b中
	printf("升序排列结果: \n");
	Sort_Ascend(b,num);
	printf("\n降序排列结果:\n");
	Sort_Descend(b,num);
	
	return 0;
}

void Sort_Ascend(int x,char y[]) {
	int i, j;
	char t = '\0';
	for (j = 0; j < x; j++) {
		for (i = 0; i < x - j; i++) {
			if (y[i] < y[i + 1]) {         //冒泡算法,大数冒泡小数沉底
				t = y[i];
				y[i] = y[i + 1];
				y[i + 1] = t;
			}
		}
	}
	for (i = 0; i <= x; i++) {
		printf("%c", y[i]);              //打印数组
	}
}

void Sort_Descend(int x,char y[]) {
	int i, j;
	char t = '\0';
	for (j = 0; j < x; j++) {
		for (i = 0; i < x - j; i++) {
			if (y[i] > y[i + 1]) {
				t = y[i];                  //冒泡算法:大数沉底,小数冒泡
				y[i] = y[i + 1];
				y[i + 1] = t;
			}
		}
	}
	for (i = 0; i <= x; i++) {
		printf("%c", y[i]);          //打印数组
	}
}

代码为学生作品,水平不高,以供记录,同时期望能和同好们共同交流学习成长

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Python 实现冒泡算法的示例代码如下: def bubbleSort(arr): n = len(arr) # 遍历所有数组元素 for i in range(n): # 最后i个元素已经排好序,不需要再比较 for j in range(0, n-i-1): # 比较相邻元素,如果左边的大,就交换位置 if arr[j] > arr[j+1] : arr[j], arr[j+1] = arr[j+1], arr[j] # 测试 arr = [64, 34, 25, 12, 22, 11, 90] bubbleSort(arr) print ("排序后的数组:") for i in range(len(arr)): print ("%d" %arr[i]), ### 回答2: 冒泡排序是一种简单而有效的排序算法,可以通过不断比较相邻元素并交换位置来将一个数组或列表按照顺序排列。 下面是使用Python语言实现冒泡算法的一个例子: ```python def bubble_sort(arr): n = len(arr) # 获取列表的长度 for i in range(n - 1): # 外层循环控制比较的轮数 for j in range(n - i - 1): # 内层循环控制每轮比较的次数 if arr[j] > arr[j + 1]: # 如果前一个元素大于后一个元素,则交换它们的位置 arr[j], arr[j + 1] = arr[j + 1], arr[j] return arr # 测试代码 arr = [5, 1, 4, 2, 8] sorted_arr = bubble_sort(arr) print(sorted_arr) # 输出结果为 [1, 2, 4, 5, 8] ``` 以上代码实现了冒泡排序算法,首先通过外层循环控制比较的轮数,内层循环控制每轮比较的次数。每次比较相邻的两个元素,如果前一个元素大于后一个元素,则交换它们的位置。经过多轮比较和交换,最终将列表按照升序排列。 ### 回答3: 冒泡排序是一种简单的排序算法,通过比较和交换相邻元素来将最大的元素逐步“冒泡”到数列的末尾。以下是用Python实现冒泡算法的示例代码: ```python def bubble_sort(arr): n = len(arr) for i in range(n - 1): for j in range(n - i - 1): if arr[j] > arr[j + 1]: arr[j], arr[j + 1] = arr[j + 1], arr[j] return arr # 测试示例 arr = [5, 2, 9, 1, 3] sorted_arr = bubble_sort(arr) print(sorted_arr) ``` 上述代码中,`bubble_sort`函数接受一个列表作为参数,并通过两层嵌套的循环进行冒泡排序。外层的循环控制趟数,共需(n-1)趟,其中n为列表的长度;内层的循环用于比较相邻元素,并交换以实现排序的目的。如果某一趟中没有发生交换操作,则说明已经完成排序,并提前结束循环。 上述代码的输出结果是`[1, 2, 3, 5, 9]`,即按从小到大的顺序排列的输入列表。这个冒泡排序算法的时间复杂度为O(n^2),其中n为列表的长度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值