首页 > 其他分享 >sort代码

sort代码

时间:2023-05-09 23:32:28浏览次数:36  
标签:sort int 代码 mid flag ia void inc


#include<stdio.h>
#include<stdlib.h>


int m[] = {10,9,8,2,3,1};
	int i = 0;
	int N = 6;
void BubbleSort(int a[],int  N)
{
	int flag = 0;
	int  mid = 0;
	int i =0,j = 0;
	for(i = 0; i<N-1;i++)
		{
			for(j = N-1; j>i ;j--)
			{
				if(a[j-1] >a[j])
					{
						mid    = a[j-1];
						a[j-1] =  a[j];
						a[j]   =  mid;
						flag = 1;
					}
			}
			if(!flag)        //如果某趟没有 交换,自此退出,全部排序完毕
				return ;
		}
}



void QuickSort(int a[],int  l,int r)
{
	if(l<r)
	{
	int x = a[l];
	int i = l;
	int j = r;
		while(i < j)
		{
			while(i<j && x>=a[j])
			{
				j--;
			}
			if(i<j)
				a[i++] = a[j];
				
			while(i<j && x <a[i])
			{
				i++;
			}
			if(i<j)
				a[j--] = a[i];
		
		}
		a[i] = x;
		QuickSort(a,l,i-1);
		QuickSort(a,i+1,r);
	}
}

//直接插入排序
void DirectInsertSort(int a[],int N)
{
	int i = 0;
	int m = 0;
	int j = 0;
	for(i=1;i<N;i++)  //注意,这个容易出现数据越界的问题
		{
			if(a[i-1]>a[i])
			{
				m = a[i];
				j = i;
				do
				{
					a[j] = a[j-1];
					j--;
				}while(j>0 && a[j]>m);
				a[j] = m;
			}
		}

}

void ShellSort(int a[],int N)
{
	int inc =N;
	int i = 0;
	int m = 0;
	int j = 0;
	for(;inc >=1 ;inc =inc /3)
	{
		for(i=inc;i<N;i+=inc)
		{
			if(a[i-inc]>a[i])
			{
				m = a[i];
				j = i;
				do
				{
					a[j] = a[j-inc];
					j = j - inc;
				}while(j>0&& a[j]>m);
				a[j] = m;
			}
		}
	}
}

//直接选择排序
void  DirectChoice(int a[], int N)
{
	//int m,n,i,j=0;这样还是不行的,变量没有都初始化的
	int m=0,n=0,i=0,j=0;
	for(i = 0;i<N;i++)
	{
		m = i;
		for(j=i+1;j<N;j++)
		{
			if(a[m]>a[j])  //作为数组,若是M是没有被初始化的,就容易产生段错误
				m = j;
		}
		if(m != i)
		{
			n = a[m];
			a[m] = a[i];
			a[i] = n;
		}
	}
}
void print()
{
	for( i = 0;i<N;i++)
		printf("%d  ",m[i]);
	printf("\n");
}
int main()
{
	
	BubbleSort(m,N);
	printf("\nafter  BubbleSort : ");
	print();
	QuickSort(m,0,5);
	printf("\nafter  QuickSort : ");
	print();
	DirectInsertSort(m,N);
	printf("\nafter DirectInsertSort : ");
	print();
	ShellSort(m,N);
	printf("\nafter  ShellSort : ");
	print();
	DirectChoice(m,N);
	printf("\nafter  DirectChoiceSort : ");
	print();
	
	
	return 0;
}



标签:sort,int,代码,mid,flag,ia,void,inc
From: https://blog.51cto.com/u_16105066/6260073

相关文章

  • 高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数
    全文链接:http://tecdat.cn/?p=23378最近我们被客户要求撰写关于高维数据惩罚回归方法的研究报告,包括一些图形和统计输出。在本文中,我们将使用基因表达数据。这个数据集包含120个样本的200个基因的基因表达数据。这些数据来源于哺乳动物眼组织样本的微阵列实验1介绍在本文中,我......
  • R语言用线性混合效应(多水平/层次/嵌套)模型分析声调高低与礼貌态度的关系|附代码数据
    全文下载链接:http://tecdat.cn/?p=23681最近我们被客户要求撰写关于线性混合效应的研究报告,包括一些图形和统计输出。线性混合效应模型与我们已经知道的线性模型有什么不同?线性混合模型(有时被称为"多层次模型"或"层次模型",取决于上下文)是一种回归模型,它同时考虑了(1)被感兴趣......
  • AStyle - Clion中配置代码格式化工具
    安装(OSX平台)brewinstallastylebrewlistastyleCLion配置1、下载插件FileWatchers2、配置插件FileWatchers:按照图中一摸一样填写即可Name:用户自己取个名字Filetype:选C/C++Scope:选择OpenFilesProgram:找到目录并选择上面brewlistastyle的路径Argument(附:博主......
  • 一道Promise面试题,并对比向其代码中添加await关键字后的变化
    标准代码:(function(){console.log(1);window.setTimeout(()=>{console.log(2);},100);newPromise((resolve)=>{console.log(3);resolve();}).then(()=>{console.log(4);......
  • pycurl 错误代码3
    Fatalexception:Pycurlerror3·Issue#138·xmendez/wfuzz·GitHub总结就是输入的url格式错误 或者说你输入的url格式人家不认可  会出现错误代码3 那么  这公开的api没办法调用?......
  • git仓库过渡,同时向两个仓库推送代码
    公司部门被大佬收购,产品项目迁移新公司仓库,过渡期间产品上线流程继续使用原公司的,新公司部署新系统后通过域名重定向逐渐将用户引流到新系统上完成切换,最后关闭原公司系统及上线流程。过渡期间新功能代码需要保证两边git仓库里一致,即执行gitpush命令时同时往两个仓库里推送代码......
  • laravel框架三级联动,详细代码
    这里运用到省份表中,下面是效果图  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~需要一个省份表,里面的字段要有个pid,name这些字段下面是控制器代码,(Citie,是那个省份表的模型)1//显示页面2publicfunctioncreate(){3$data=Citie::where('pid',0)-......
  • vue sort 排序方法
    1、数据排序vararry=[9,5,6,7,5,6,3,1,0]arry.sort()//[0,1,3,5,5,6,6,7,9] 2、对象排序varlist=[{name:'张三',age:12},{name:'李四','age:23}];list.sort((a,b)=>{returna.age-b.age});//[{name:'李四','ag......
  • 基于注解的字段脱敏,无侵入代码
     好久没更新了,最近一直忙于加班。之前脱敏的规则,抽象出来做成公共方法。方便其他业务引用。  1之前的做法 有前端传一个字段,是否需要脱敏,后端根据业务字段进行脱敏,这样的脱敏是放在业务中。这样做就对代码有污染,有更新的字段就得继续加代码。而且别的业务需要,也得......
  • 一行代码搞定 font-size 响应式
    前言公司要做大屏,但是大屏还要有个嵌在系统的版本,屏幕(iframe)小了但字体大了怎么办。网上找了很多代码都很长,个人参考了资料后实现了一个一行代码font-size响应式。TL;DRhtml{font-size:clamp(12px,calc(7px+0.390625vw),24px);}解释在<html>标签中定义是为......