排序算法总结

排序算法总结

大家好,又见面了,我是全栈君,今天给大家准备了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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 图像处理用matlab还是python_python和matlab对比

    图像处理用matlab还是python_python和matlab对比由于需要frost滤波进行滤波,一通查找到了matlab版本,以前电脑上有matlab软件,但是一直没用到,现在东西好不容易找到了,就搜了下相关教程,整理一个博客。感觉matlab语言和python语言很多类似操作,所以敲起代码来有种“春风得意马蹄疾”的感觉,废话不多说,上代码。下面代码matlab入门没啥问题…算法下载地址如下(如果不需要可以忽略下载,用matlab中自带的算法):differe…

    2022年10月4日
  • Python 正则表达式大全[通俗易懂]

    Python 正则表达式大全[通俗易懂]1前言正则表达式是对字符串(包括普通字符(例如,a到z之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。上面都是官方的说明,博主自己的理解是(仅供参考):通过事先规定好一些特殊字符的匹配规则,然后利用这些字符进行组合来匹配各种复杂的字符串场景。比如现在的爬虫和数据分析,字符串校验等等都

    2022年10月3日
  • Linux系统(根目录下)目录介绍

    Linux系统(根目录下)目录介绍1./bin目录/bin目录包含了引导启动所需的命令或普通用户可能用的命令(可能在引导启动后)。这些命令都是二进制文件的可执行程序(bin是binary–二进制的简称)

    2022年7月2日
  • Java SE学习之printf 日期转换符[通俗易懂]

    Java SE学习之printf 日期转换符

    2022年2月3日
  • 数据库四大特性_Mysql数据库四种特性

    数据库四大特性_Mysql数据库四种特性1、原子性(Atomicity):原子性是指事务是一个不可分割的工作单位,事务中的操作要么全部成功,要么全部失败。比如在同一个事务中的SQL语句,要么全部执行成功,要么全部执行失败。2、一致性(Co

    2022年8月4日
  • [转][Web测试]- Fiddler 教程

    [转][Web测试]- Fiddler 教程

    2021年8月16日

发表回复

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

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