冒泡排序算法C语言实现-程序员宅基地

技术标签: 算法  c语言  冒泡排序  排序算法  

实现如下:

#include <stdio.h>
#include <stdlib.h>

#define SIZE 20

void bubble_sort(int array[], const int size);
void swap(int *n1, int *n2);
void printArray(int array[], const int size);

int main(int argc, char const *argv[])
{
    int array[SIZE];
    int count = 0;
    srand(time(NULL));
    for (count = 0; count < SIZE; count++) {
        array[count] = rand() % SIZE + 1;
    }
    printArray(array, SIZE);
    bubble_sort(array, SIZE);
    printArray(array, SIZE);
    return 0;
}

void bubble_sort(int array[], const int size) {
    int j, k;
    for (j = 0; j < size - 1; j++) {
        for (k = 0; k < size - 1 - j; k++) {
            if (array[k] > array[k + 1]) {
                swap(&array[k], &array[k + 1]);
            }
        }
    }
}

void swap(int *p1, int *p2) {
    int temp = *p1;
    *p1 = *p2;
    *p2 = temp;
}

void printArray(int array[], const int size) {
    printf("The current array is:\n");
    int count = 0;
    for (count = 0; count < size; count++) {
        printf("%d ", array[count]);
    }
    printf("\n");
}

程序使用标准函数库中函数rand产生SIZE个随机数并对其进行冒泡排序。
冒泡排序为原地稳定的排序算法,主要思想为每次循环将一个最大的数上浮到未排序的数组末尾,进行数组长度减一次循环即可排序完成,其渐近确界为 Θ(n2) ,计算过程与插入排序类似。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sinat_16709955/article/details/60143430

智能推荐

最简单了理解线程通信的举例_最简单的线程通信-程序员宅基地

public class ThreadCommunicated { public static void main(String[] args) { final Printer p = new Printer(); new Thread() { public void run() { while (true) { try { p.print1();_最简单的线程通信

python自动批量发邮件脚本_python实现自动发送邮件发送多人、群发、多附件的示例...-程序员宅基地

1、最近公司实现部分数据统计、分析的报表进行每天定时发送到相关人员的邮箱之中的配置代码被人为删除了,需要重新恢复该功能,由于原先是在linux上使用shell配置发送,实在是太繁琐,所以准备使用python来实现该功能,不过发现网上各种文档都是未经过整理,代码写的很不友善,比如发送多人的只能发送前一个邮箱,附件写死不灵活等等,故特写一遍比较记录。主要会遇到的几个问题:1、smtplib.SMTPA..._python自动批量发邮件脚本_python实现自动发送邮件发送多人、群发、多附件的示例

逆向 Flutter 应用-程序员宅基地

Python实战社群Java实战社群长按识别下方二维码,按需求添加扫码关注添加客服进Python社群▲扫码关注添加客服进Java社群▲作者 | Andre Lipke来源 | PIXE..._flutter kernel_blob.bin文件逆向

关于图片的缩放,拉伸处理-程序员宅基地

一、 图片拉伸 - (void)bgView

微信公众号菜单跳小程序 提示页面不存在的解决办法_问卷星小程序页面路径-程序员宅基地

今天在微信公众号添加了菜单准备跳转到小程序的。显示获取了我要跳转的页面路径 “pages/orderList/orderList.html?sts=0”然后在公众号菜单里直接加入,结果测试跳转的时候提示“页面不存在”![在这里插入图片描述](https://img-blog.csdnimg.cn/20200714225202491.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9._问卷星小程序页面路径

python判断时间是否落在两个时区之间(只比较时刻不比较日期)_python datetime比较时间不比日期-程序员宅基地

方法1,使用datetime值比较import datetime# 范围时间d_time1 = datetime.datetime.strptime(str(datetime.datetime.now().date())+'8:30', '%Y-%m-%d%H:%M')d_time2 = datetime.datetime.strptime(str(datetime.datetime..._python datetime比较时间不比日期

随便推点

ubuntu 安装snmp-程序员宅基地

例如:用户名:ygq@snmp 密码:ygq@snmp 自己的VPS自己定义sudo apt-get install snmp snmpd snmp-mibs-downloadersudo vi /etc/snmp/snmpd.conf 加入一行 rouser ygq@snmp auth #username自定义一个用户名sudo vi /etc/snmp/snmp.conf 注释

State Processor API:如何读取,写入和修改 Flink 应用程序的状态-程序员宅基地

大数据技术与架构点击右侧关注,大数据开发领域最强公众号!暴走大数据点击右侧关注,暴走大数据!过去无论是在生产中使用,还是调研 Apache Flink,总会遇到一个问题:如何访问和更新 ..._state processer 读取sql里面的状态

有关 ClassNotFoundException: flex.messaging.HttpFlexSession-程序员宅基地

新建了整合入BlazeDS功能的Flex,在本地开发可谓是一马平川,顺风顺水。通过SVN提交后,同事开发总是有羁绊,尽管我们试过了把开发环境(MyEclipse 6.5 +FlexBuild 3)完全一致,把发布的服务器也弄得一模一样(JBoss 4.0.2),可在我本地没有问题的Flex Web工程,在他那里启动时,却总是报错, Error configuring application listener of class flex.messaging.Ht

windows系统启动java程序限制cpu核心数_限制jar的cpu_有一只柴犬的博客-程序员宅基地

windows上限制java程序限制cpu核心数的方式:1、任务管理操作任务管理器-->详细信息-->找到进程,鼠标右键-->设置相关性-->选择使用cpu核心。这种方式是临时方案,因为在程序重启后,这里的设置会被还原,即默认还是充分使用全部cpu核心。2、利用bitsum通常我们启动一个java进程为:java -jar xxx.jar。这里添加命令start /affinity 0x0000000000000003 java -ajr xxx.j_限制jar的cpu

Linux的进程间通信 - 管道_error nova from paramiko.auth_handler import auth -程序员宅基地

在Linux中什么是管道和为什么要有管道?管道怎么分类?管道的实现是什么样的?管道有多大?管道的大小是不是可以调整?如何调整?_error nova from paramiko.auth_handler import auth handler