查看: 441|回复: 2

[C/C++] 冒泡排序算法

[复制链接]

0

技术

9

魅力

1

原创

版主

禁止访问

Rank: 7Rank: 7Rank: 7

积分
7734
人气
176
分享
52

最佳新人活跃会员

发表于 2023-1-10 09:00:32 | 显示全部楼层 |阅读模式
【原理】
每次都比较数组中相邻的两个数,较大的那个数将会排在前面,即可实现从大到小排序
【代码】
[C] 纯文本查看 复制代码
#include <stdio.h>

int main(int argc, char** argv)
{
	int i, j;
	int arr[5] = { 1,14,5,145,1890 }; //这里直接定义了
	int tmp;
	//这里是从小到大排序,从大到小也可以
	for (i = 1; i < 5; i++) {
		//外层下标为1~5,表示了后四个元素
		for (j = 4; i >= i; j--) {
			//从最后一个元素向前循环
			if (arr[j] < arr[j - 1]) {
				//后一个元素比前一个元素大
				//交换数值
				tmp = arr[j - 1];
				arr[j - 1] = arr[j];
				arr[j] = tmp;
				//这几部很好理解
			}
		}
	}
	printf("排序结果:\n");
	for (i = 0; i < 5; i++) {
		//从下标0输出排序后的数组
		printf("%d\t",arr[i]);
	}
	printf("\n"); //否则Press any key to continue会和数字再同一行
	return 0; 
}


小菜鸡一枚~
Gitee主页:https://gitee.com/juruoqwq

0

技术

0

魅力

2

原创

初出茅庐

Rank: 2

积分
238
人气
18
分享
2
发表于 2023-1-10 21:28:17 | 显示全部楼层
前排支持!话说,能否把Bubble Sort从main中抽离出来写成一个函数?

0

技术

9

魅力

1

原创

版主

禁止访问

Rank: 7Rank: 7Rank: 7

积分
7734
人气
176
分享
52

最佳新人活跃会员

 楼主| 发表于 2025-1-30 20:33:04 | 显示全部楼层
usr 发表于 2023-1-10 21:28
前排支持!话说,能否把Bubble Sort从main中抽离出来写成一个函数?

可以可以
不好意思我居然没看到
[C++] 纯文本查看 复制代码
#include <stdio.h>
#include <vector>

std::vector<int> BubbleSort(const std::vector<int> arr)
{
    int i, j;
    int tmp;
    //这里是从小到大排序,从大到小也可以
    for (i = 1; i < 5; i++) {
        //外层下标为1~5,表示了后四个元素
        for (j = 4; i >= i; j--) {
            //从最后一个元素向前循环
            if (arr[j] < arr[j - 1]) {
                //后一个元素比前一个元素大
                //交换数值
                tmp = arr[j - 1];
                arr[j - 1] = arr[j];
                arr[j] = tmp;
                //这几部很好理解
            }
        }
    }
    return arr;
}


int main(int argc, char** argv)
{
    std::vector<int> arr = {1,0,2,9,3,8,4,7,5,6};
    std::vector<int> res = BubbleSort(arr);
    printf("排序结果:\n");
    for (i = 0; i < 5; i++) {
        //从下标0输出排序后的数组
        printf("%d    ",res[i]);
    }
    printf("\n"); //否则Press any key to continue会和数字再同一行
    return 0;
}
小菜鸡一枚~
Gitee主页:https://gitee.com/juruoqwq
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表