码迷,mamicode.com
首页 > 编程语言 > 详细

冒泡算法

时间:2018-11-18 19:30:43      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:循环   冒泡算法   number   []   printf   bsp   ble   temp   因此   

冒泡算法:

外围for控制大循环需N次,

内存控制每次大循环需比对M次。

    因每次大循环,均挪移一个最大(最小值)到Table首或Table尾,因此下一个大循环则比前一次少一个循环(下一个循环挪移【第二大】or【第二小】到对应位置)

#include <stdio.h>

void printTable(int* p, int len)
{
    int i;
    
    printf("numberTable: ");
    for (i=0; i<len; i++)
    {
        printf("%d ",*(p+i));
    }
    printf("\n");
}

void buble_sort(int* p, int len)
{
    int i,j,temp;

    for (int i=1; i<len; i++)
    {
        printf("%dst---------------------\n",i);
        for (int j=0; j<len-i; j++)
        {
            if (*(p+j) < *(p+j+1))
            {
                temp = *(p+j);
                *(p+j) = *(p+j+1);
                *(p+j+1) = temp;
            }
            printTable(p, len);
        }
    }
}

void main(void)
{
    int numberTable[] = {5,13,2,76,24,31,1};
    int i,j,temp,len=sizeof(numberTable)/sizeof(int);

    printf("numberTable len:%d\n", len);
    printTable(numberTable, len);
 
    buble_sort(numberTable, len);
 /*   for (int i=1; i<len; i++)
    {
        printf("%dst---------------------\n",i);
        for (int j=0; j<len-i; j++)
        {
            if (numberTable[j] < numberTable[j+1])
            {
                temp = numberTable[j];
                numberTable[j] = numberTable[j+1];
                numberTable[j+1] = temp;
            }
            printTable(numberTable, len);
        }
    } */
}

冒泡算法

标签:循环   冒泡算法   number   []   printf   bsp   ble   temp   因此   

原文地址:https://www.cnblogs.com/tedani/p/9978691.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!