数据结构 C语言实现冒泡排序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010889616/article/details/47780915

一、冒泡排序简介

冒泡排序是相邻的两个数进行比较,每次把最大的或最小的放到后面。

二、代码实现

#include <stdio.h>


/* 将两个数据交换 */
void swap(int* Ina , int* Inb)
{
    int temp = *Ina;
    *Ina = *Inb;
    *Inb = temp;
}

/*
* 函数功能:冒泡排序,把数据从小到大排序
* 参数解释:InArray  输入的数组
*         InLen    输入的数组的长度
*/
int maopaoSort(int* InArray,int InLen)
{
    int i = 0,j = 0;

    if(InArray == NULL)
        return 1;

    /* 外层循环 */
    for(i = 0; i < InLen-2; i++)
    {
        /* 内层循环 */
        for(j = 0; j < InLen-i-1; j++)
        {
            /* 时刻保证每次 */
            if(InArray[j] > InArray[j+1])
            {
                swap(&InArray[j],&InArray[j+1]);
            }
        }
    }
    return 0;
}

int main()
{
    int a[] = {49,38,65,97,76,13,27};
    int index = 0;

    int len = sizeof(a)/sizeof(int);

    /* 先遍历打印一下数组的元素 */
    for(index = 0; index < len; index++)
    {
        printf("%d  ",a[index]);
    }
    printf("\n");

    /* 调用选择排序函数 */
    maopaoSort(a,len);

    /* 再遍历打印一下数组的元素 */
    for(index = 0; index < len; index++)
    {
        printf("%d  ",a[index]);
    }
    printf("\n");



    return 0;
}


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页