冒泡排序

前记:干他娘的,这么简单的排序居然还要想好久,关键是之前都是理解了的(大概几年前吧。。。),可能是没有看到图,所以我一直觉得有图片的话理解会容易的多。。。

思路:for循环共两层,内存循环将一个最大的数(按照从小到大顺序)移动到当前数组的末尾,内层循环负责记录按照内层循环的移动方式,排序好一个数组要多少次。

上图:

IMAG0014

上代码:

// 冒泡排序.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    int a[5]={12,1,32,122,3};
    int len=5;
    int i,j,temp;
    for (i=0;i<len-1;i++)
    {
        for (j=0;j<len-i-1;j++)    //for循环  比较的目的就是把最大的元素移动到最后
        {
            if (a[j+1]<a[j])
            {
                temp=a[j+1];
                a[j+1]=a[j];
                a[j]=temp;
            }
        }
    }
    for (i=0;i<len;i++)
    {
        cout<<a[i]<<"  ";
        cout<<endl;
    }
    return 0;
}
原文地址:https://www.cnblogs.com/audi-car/p/4573946.html