排序算法(一)

稳定的排序算法

void swap(int &a , int &b)
{
    int t = b;
    b = a;
    a = t;
}

冒泡排序

void bubbleSort(int *data , int size)
{
    for(int i=0;i<size-1;i++)
        for(int j=0;j<size-i-1;j++)
            if(data[j]<data[j+1])
                swap(data[j] , data[j+1]);
}

直接插入排序(straight insertion sort)

将一个记录插入到已排好序的有序表中,即先将序列中第一个记录看成是一个有序的子序列,然后从第2个记录起逐个进行插入,直至整个序列变成按关键字有序排列为止。

void insertSort(int *data , int size = SIZE)
{
	int outpost = 0;//哨站
	for(int i=1;i<size;i++)
	{
		if(data[i]<data[i-1])
		{
			outpost = data[i];
			data[i] = data[i-1];		
			int j = i-1;
			while(data[j]>outpost)
			{
				data[j+1] = data[j];
				j--;//这里会多执行一次
			}
			data[j+1] = outpost;
		}
	}
}


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值