排序算法总结

排序算法总结

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

1 冒泡排序:

void BubbleeSort(int*p,int len,SORT_TYPE type = SORT_ASC)
	{
		
		//方式二冒泡:有发生任务数据交互时。说明已经排序好了
		bool flag = true;
		int k = len;
		while (flag)
		{
			flag = false;
			for(int j=0 ; j<k-1 ; j++)
			{
				if (p[j] > p[j+1])
				{
					swap(p+j,p+j+1);
					flag = true;
				}
			}
	}

2、高速排序:

	void QuickSort(int*a, int nLeft, int nRight)
	{
		if(nLeft > nRight) return;

		int temp = a[nLeft];
		int i = nLeft;
		int j = nRight;

		while (i < j)
		{
			//首先从右边找到一个比temp小的数
			while(a[j]>=temp && j>i)
				j--;
			//从左边边找到一个比temp大的数
			while(a[i]<=temp && j>i)
				i++;
			//交换找到的两个数据
			//交换两个数在数组中的位置                 
			swap(a+i,a+j); 
		}
		//print(a,10);
		//终于将基准数归位   
		swap(a+nLeft,a+i);
		QuickSort(a,nLeft,i-1);
		QuickSort(a,i+1,nRight);
	}

3、插入排序

          void InsertSort(int*a, int nLeft, int nRight)	{
		for(int i=1 ; i< len ; i++)
		{
			if(a[i] < a[i-1])
			{
			 	int j = i-1;
				int temp = a[i];

				while(temp < a[j])
				{
					a[j+1] = a[j];
					j--;
				}
				a[j+1] = temp;
			}
			//print(a,len);
		}
	}

4、选择排序

	void SelectSort(int*a,int len,SORT_TYPE type = SORT_ASC)
	{
		for(int i=0; i<len;i++)
		{
			int temp = a[i];
			int index = i;
			for(int j=i+1; j <len;j++)
			{
				if(a[j] < a[index])
				{
					index = j;
				}
			}
			swap(a+i,a+index);
		}
		//print(a,len);
	}

 

版权声明:本文博客原创文章,博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117549.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月4日 上午7:00
下一篇 2022年1月4日 上午8:00


相关推荐

  • java图书馆新地址_最受Java开发者喜爱的5款开源IDE盘点

    java图书馆新地址_最受Java开发者喜爱的5款开源IDE盘点开源最前线(ID:OpenSourceTop)猿妹编译项目地址:https://opensource.com/article/20/7/ide-java在TIOBE编程语言排行中,Java始终排在前三名,现今有700万到1000万的Java开发人员。许多应用程序的所有代码都是用Java编写的,这意味着集成开发环境(IDE)很重要,因为它是开发人员编写、测试和运行Java程序必备的工具…

    2022年7月8日
    46
  • matlab自带的插值函数interp1的几种插值方法

    matlab自带的插值函数interp1的几种插值方法插值法    插值法又称“内插法”,是利用函数f(x)在某区间中已知的若干点的函数值,作出适当的特定函数,在区间的其他点上用这特定函数的值作为函数f(x)的近似值,这种方法称为插值法。如果这特定函数是多项式,就称它为插值多项式。线性插值法    线性插值法是指使用连接两个已知量的直线来确定在这两个已知量之间的一个未知量的值的方法。    假设我们已知坐标(x0,y0)与…

    2022年6月13日
    40
  • R语言安装~R,Rstudio

    R语言安装~R,Rstudio一、R语言安装首先进入官网:https://cran.r-project.org下载相应版本的安装包点击base点击DownloadR4.1.2forWindows,即可开始下载下载完成后,点击该安装包,开始下载我要安装的是64bit,把32bit的勾划掉,继续点击下一步,直到安装完成二、Rstudio安装下载地址为:DownloadtheRStudioIDE-RStudio点击free下的download…

    2022年6月27日
    46
  • yaxim

    yaxim

    2021年9月2日
    66
  • OpenClaw API 龙虾一键配置生成工具 第三方中转站自定义模型API Key BaseUrl

    OpenClaw API 龙虾一键配置生成工具 第三方中转站自定义模型API Key BaseUrl

    2026年3月13日
    2
  • C#代码集

    C#代码集C#入门代码示例记录一、示例静态计算工具类1publicstaticclassCalculator2{3publicstaticdoubleAdd(doublea,doub

    2022年7月1日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号