十大排序算法

1.冒泡排序算法

void paixu(int legth, int arr[])
{
   
	int flag = 1; //flag=1表示数组否发生改变 
	while(legth-- && flag)
	{
   
		flag = 0; // 没有发生改变
		for (int i = 0; i<length; i++)
		{
   
			if ( arr[i+1] < arr[i] )
			{
   
				flag = 1; // 数组发生改变位置交换
				int temp = arr[i + 1];
				arr[i + 1] = arr[i];
				arr[i] = temp;
			}	
		}
}
}

2.选择排序

基本思想还是冒泡排序。每一轮找到最小值后和第一个元素进行交换,依次类推

	void paixu(int arr, int leghth)
	{
   
		for(int i=0; i<legrh; i++)
		{
   
			int k = i;
			for(int j=i; j<length; j++)
			{
   
				if(arr[j] < arr[k])
				{
   
					k = j;
				}
			}
			swap(arr[i],arr[k]);	
		}
}

3.插入排序

优点是当原始序列基本有序时,再将一个新的数据插入进来比较方便,也比较高效率。

	void insertsort(int arr[], int legth)
	{
   
		for(int i=1; i<legth; i++)
		{
   
			for(int j=i; j>=1; &&arr[j]<arr[j-1];j--)
			{
   
				swap(arr[j],arr[j-1]);
}
}
}

4.希尔排序

优化版的插入排序

void shellSort(int arr[], int legth)
{
   
	int h=4;
	int h=1int t = legrh / 3;
	while(h<t) h= 3*h+1;

	while (h>=1)
	{
   
for(int i=h; i<legth; i++)
		{
   
			for(int j=i; j>=h; &&arr[j]<arr[j-h]; j-h)
			{
   
				
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值