冒泡法 复习

目的:按要求从大到小或从小到大排序。

基本思路:对尚未排序的各元素从头到尾依次依次比较相邻的两个元素是否逆序(与欲排顺序相反),若逆序就交换这两元素,经过第一轮比较排序后便可把最大(或最小)的元素排好,然后再用同样的方法把剩下的元素逐个进行比较,就得到了你所要的顺序。可以看出如果有N个元素,那么一共要进行n-1轮比较,第I轮要进行j=n-i次比较。(如:有5个元素,则要进行5-1轮比较。第3轮则要进行5-3次比较)




C++为例:这例中用到外部静态数组,也可以不用,用参数传递的方法。

#include<iostream.h>

static int age[5]={21,18,20,17,19};

     void main()

           {

           void sort_age();    //函数原形声明

           void prt_age();     //函数原形声明

           sort_age();

           prt_age();

           }

      void sort_age()      //冒泡实现函数

      {

       extern int size;     //引用性声明

       size=sizeof(age)/2       //计算数组大小

       for(int i=1;i<=size-1;i++)

       for(int j=0;j<=size-i;j++)

       if(age[j]>age[j+1])

       {

        int temp;

        temp=age[j];

        age[j]=age[j+1];

        age[j+1]=temp;

        }

     }

    void prt_age()

        {

        extern int size;      //引用性声明

        for(int i=0;i<size;i++)

        cout<<"age["<<i<<"]:"<<age[i]<<endl;

          }

int size      //定义性声明


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值