黑马程序员技术交流社区

标题: 弄个冒泡排序法给大家分享下,理解起来还是比较难的 [打印本页]

作者: John_chow    时间: 2014-10-14 12:11
标题: 弄个冒泡排序法给大家分享下,理解起来还是比较难的
/*
        冒泡排序: 通过两两直接比较,把最大的那个数值放在最高位,依次进行
        */
#include <stdio.h>

int main()
{
    int arr[]={34,12,55,53,23,3,43}; // 当然自己也可以手动输入
   
    int len = sizeof(arr)/sizeof(int);  //求数组长度
    int x,y,z,temp = 0;

        for(x=0;x<len-1; x++)              //for外循环  控制数组角标元素   
        {
                for(y=0;y<len-1-x; y++)       /*
                                        for内循环  控制每次循环 两两元素比较的次数
                                        len-1-x表达式解析:
                                        -1:为了避免角标越界
                                        -x:为了让外循环增加一次,内循环参与比较的元素个数递减
                                      */
                {
                        if(arr[y]>arr[y+1])       
                        {
                       
                                temp  = arr[y];     //比较之后前后交换元素
                                arr[y] = arr[y+1];
                                arr[y+1] = temp;
                       
                        }
                }       
        }
       
    for(z=0;z<len;z++)                 //遍历输出排序后的数组
    {
                      printf("arr[%d] = %d\n",z,arr[z]);
                      }
    while(1);
    return 0;
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2