排序算法——冒泡排序

很基础的排序算法
冒泡法
冒泡法的mehcanism很简单,但从动图原理来看
我更愿意称之为沉淀法,就是最大的那个在每轮iteration后会沉到最后去
当然,这样客观来讲是轻的(小的数)往上浮动
浊坠清扬,本来就是同一过程的一体两面

算法步骤

  1. 从第0个元素开始往后,对数组中的相邻元素对进行比较
  2. 若前一个和后一个满足升序排列,则不动;否则进行交换
  3. 在第i次迭代时,需要进行(n-i)次比较和交换
  4. 进行n-1次迭代,易知算法复杂度为O(n^2)
//很基础的排序算法
//1. 冒泡法
//冒泡法的mehcanism很简单,但从动图原理来看
//我更愿意称之为沉淀法,就是最大的那个在每轮iteration后会沉到最后去
//当然,这样客观来讲是轻的(小的数)往上浮动
//浊坠清扬,本来就是同一过程的一体两面
//






#include<iostream>
#include <cstdlib>
#include <iomanip>
using namespace std;

//
//算法步骤
//1. 从第0个元素开始往后,对数组中的相邻元素对进行比较
//2. 若前一个和后一个满足升序排列,则不动;否则进行交换
//3. 在第i次迭代时,需要进行(n-i)次比较和交换
//4. 进行n-1次迭代,易知算法复杂度为O(n^2)
/**
    冒泡法排序
    @parameter unsorted_array:原始数组
    @parameter size: 数组长度

*/
void Bubble_Sort(int unsorted_array[],int size)
{
    int temp;

    for(int i = 1;i<size;i++){
        for(int j=0;j<size-i;j++)
        {
            if(unsorted_array[j] > unsorted_array[j+1])
            {
                temp = unsorted_array[j];
                unsorted_array[j] = unsorted_array[j+1];
                unsorted_array[j+1] = temp;
            }
        }
    }


}

int main(){
    int seed = 100;
    srand(seed);

    int size = 100;
    int test_array[size];

    //初始化
    for(int i =0;i<size;i++)
    {
        test_array[i] = (rand()%100);
        cout<<left<<setw(5)<<test_array[i];
        if( ((i+1)%10)== 0)
            cout<<endl;
    }
    cout<<"************************************************************"<<endl;
    Bubble_Sort(test_array,size);
    for(int i =0;i<size;i++)
    {

        cout<<left<<setw(5)<<test_array[i];
        if( ((i+1)%10)== 0)
            cout<<endl;
    }

    return 0;

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值