排序算法总结

排序算法总结

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


相关推荐

  • c++使用json_qt读写json文件

    c++使用json_qt读写json文件目录前言一、json文件简介1、json文件2、json与其他存储数据方式比较二、C++操作json文件1、jsoncpp库下载2、C++从字符串中读取json3、C++从文件中读取json4、C++写入json文件5、主函数附:jsoncpp库配置1、解压并转移2、配置属性3、配置项目前言json文件是比较轻量级的文件,格式简单…

    2022年10月12日
    3
  • beanUtils.copy_拷贝板原理

    beanUtils.copy_拷贝板原理本文用实例介绍BeanUtils的拷贝原理。

    2025年8月28日
    4
  • 很重要的一点

    很重要的一点

    2022年3月6日
    40
  • Qt学习之QListWidget删除Item

    Qt学习之QListWidget删除Item将QListWidgetItem从QListWidget列表中删除有两种方法可以做到,但也要根据自己的需要进行选择。第一种是QListWidgetItem*takeItem(introw);使用此方法需要知道删除的是第几个Item,并且返回删除的Item指针。第二种是inlinevoidremoveItemWidget(QListWidgetItem*item);需要知道删除

    2022年5月3日
    543
  • google的ipv6地址_Google礼品卡

    google的ipv6地址_Google礼品卡#GooglePlus2a00:1450:8007::64plus.google.com2404:6800:8005::62talkgadget.google.com##Google.comGoogle.com2404:6800:8005::68www.google.com#主页2404:6800:8005::c1m.google.com#Google移动版2404:6…

    2022年10月9日
    4
  • 人脸去重算法_哈希去重算法

    人脸去重算法_哈希去重算法对比其他算法『百度的去重算法』百度的去重算法最简单,就是直接找出此文章的最长的n句话,做一遍hash签名。n一般取3。工程实现巨简单,据说准确率和召回率都能到达80%以上。『shingle算法』shingle原理略复杂,不细说。shingle算法我认为过于学院派,对于工程实现不够友好,速度太慢,基本上无法处理海量数据。『其他算法』具体看微博上的讨论…

    2025年7月20日
    3

发表回复

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

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