菜鸟程序员


私信TA

用户名:yaoyichen

访问量:7337

签 名:

一名会编程的初中生

等  级
排  名 1073
经  验 3105
参赛次数 4
文章发表 23
年  龄 13
在职情况 学生
学  校 常州外国语学校
专  业

  自我简介:

一名会编程的初中学生(很菜)

TA的其他文章

本文总结了数组排序的四种方法,提供给大家使用。制作不易,给个高分,谢谢。

  1. 选择排序

  2. 冒泡排序(小学生排序)

  3. sort排序

  4. 交换排序

我们先来看第一种方法:选择排序。

这种排序的主要思路就是将第一小的元素找出来,放在第一位(也就是第i位),再将第二小的元素找出来,放在第二位……以此类推。这个过程需要用到打擂法,而且要用双重循环。

#includeusing namespace std;
int main()
{
    int a[10000],n,shu,js;
    cin>>n;
    for(int i=1;i>a[i];
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=i+1;j<=n;j++)//从第i+1个数开始寻找,因为前面已经找过并排好了
		{
			if(a[j]<a[i])
			{
				js=j;
			}
			shu=a[i];
			a[i]=a[js];
			a[js]=shu;
		}
	}
	for(int i=1;i<=n;i++)
	{
		cout<<a[i]<<" ";
	}



    return 0;
}

我们在来看第二种方法:冒泡排序。

这种方法也叫小学生排序。

这种排序的思想就是从第一个数开始比较相邻数大小,如果第一个数大于第二个数,就将其互相交换。同样要用到双重循环。

#includeusing namespace std;
int main()
{
	int a[10000],n,shu,js;
	cin>>n;
	for(int i=1;i>a[i];
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;ja[j+1])
			{
				shu=a[j];
				a[j]=a[j+1];
				a[j+1]=shu;
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		cout<<a[i]<<" ";
	}



    return 0;
}

第三种排序就是调用sort函数排序,使用方法如下:

sort(数组的开始地址(数组名),数组名+数组的结束地址+1);

一般数组的开始地址就是数组的名字,结束地址就是输入的数组元素的数量(在此题中为n)

这种方法也是最简单、最快捷的。

#includeusing namespace std;
int main()
{
	int a[10000],n;
	cin>>n;
	for(int i=1;i>a[i];
	}
	sort(a,a+n+1);
	for(int i=1;i<=n;i++)
	{
		cout<<a[i]<<" ";
	}



    return 0;
}

第四种排序是我自己写的,我给它取名叫做交换排序,因为其中会交换数据,但不是像冒泡排序(详情见上)那样进行挨个比较,而是一次将一个元素(a[i])与所有元素进行比较,如果小于某个元素,就将其与大的那个元素交换,每执行一次就能排好一个元素。

#includeusing namespace std;
int main()
{
	int a[10000],n,shu;
	cin>>n;
	for(int i=1;i>a[i];
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(a[i]<a[j])
			{
				shu=a[i];
				a[i]=a[j];
				a[j]=shu;
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		cout<<a[i]<<" ";
	}



    return 0;
}

以上是我总结的四种数组排序方法,希望对大家有用,制作不易,给个高分,谢谢。

 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答

代码解释器

  评论区