排序算法总结

排序算法总结

大家好,又见面了,我是全栈君,今天给大家准备了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


相关推荐

  • telnet命令详解_Telnet命令

    telnet命令详解_Telnet命令前面的Telnet的命令使用方法部分是我在网上搬过来的,后面的内容是我在自己初学实践时所遇到的一些问题及解决方法。Telnet使用介绍  1、点击开始 → 运行 → 输入CMD,回车。  2、在出来的DOS界面里,输入telnet测试端口命令:telnetIP端口或者telnet域名端口,回车。  如果端口关闭或者无法连接,则显示不能打开到主机的链接,链接失败;端口打开的…

    2026年2月27日
    3
  • 一步一步学习androidNDK编程(hello world)

    一步一步学习androidNDK编程(hello world)上一篇博客,已经搭建好了windows下的linux环境(cygwine),这次我们试着写一个helloworld。首先需要去android的官网下载android-ndk压缩包,之后解压,进入解压后的目录,我们发现有一个ndk-build的脚本文件,这个脚本文件就是我们用交叉编译的文件。我们通过 “./ndk-build” 来运行该命令,如下图:    因为目前我们没有

    2022年4月19日
    50
  • 使用jQuery使Div居中

    使用jQuery使Div居中Div 居中是一个比较常见的需求 下面介绍一种使用 JQuery 使 Div 居中的方法先假设有这样一个 Div test 首先是要把需要居中的 Div 进行绝对定位 如 nbsp nbsp nbsp nbsp nbsp nbsp nbsp d nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp position absolute nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp width 500 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp height 300

    2026年3月17日
    2
  • crontab用法_切尔西对萨格勒布

    crontab用法_切尔西对萨格勒布Crontab语法一、基本语法minutehourday-of-monthmonth-of-yearday-of-weekcommands二、合法值00-5900-2301-3101-120-6(0issunday)三、特殊符号*代表所有的取值范围内的数字/代表每的意思,/5表示每5个单位-代表从某个数字到某个数字,分开几个离散的数…

    2025年6月10日
    4
  • 基于java会议管理系统设计(含源文件)

    基于java会议管理系统设计(含源文件)欢迎添加微信互相交流学习哦 项目源码 https gitee com oklongmm biye 一绪论 1 1 本课题的开发背景及意义当今社会竞争日益激烈 企事业单位内部会议也不断增多 会议信息量也逐渐增大 企业公司内部需要经常通过会议进行沟通 问题解决以及决策的制定 而现在企事业的会议管理工作繁重且处于无系统流程的状态 手工作业效率很低 不便于管理 而且容易出错 据调查 经理级和专业人员每周约花 1 4 的时间在开会上 美国权威机构的统计表明 1996 年美国企业因不当的会议管理导致的损失

    2026年3月16日
    2
  • 百度文心一言开源大模型ERNIE-4.5-0.3B-PT深度测评

    百度文心一言开源大模型ERNIE-4.5-0.3B-PT深度测评

    2026年3月12日
    3

发表回复

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

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