题解 | #有序序列判断#

有序序列判断

https://www.nowcoder.com/practice/22e87f8a8d764a6582710f38d1b40c6e

#include<stdio.h>
int main()
{
	int n = 0,i=0,j=0,count=0;
	int a[50] = { 0 };

	scanf("%d", &n);

	for (i = 0; i < n; i++)
	{
		scanf("%d",&a[i]);
	}

	for (i = 0; i < n - 1; i++)   //外循环n-1次  如果n==5,0---4  5次 所以不取=
	{
		for (j = 0; j < n - 1 - i; j++)    //内循环从n-1次开始递减   如果n==5,0---5-1-0  5次 所以不取=
		{
			if (a[j] > a[j + 1])
			{
				int tmp = a[j];
				a[j] = a[j + 1];
				a[j + 1] = tmp;
				count++;
			}
		}
	}
	//如果递增序列,count值不加,为0
	//如果值都相同,count值也加,为0
	//如果递减序列, n-1次到0次 等差数列求和(n-1)*n/2 次
	int sum = (n * (n - 1)) / 2;
	if (count == 0 || count == sum)
		printf("sorted");
	else
		printf("unsorted");


	return 0;
}

全部评论

相关推荐

码农索隆:单休一个月少休息4天,一年就是48天,平时节假日,别人3天假期,单休的两天
点赞 评论 收藏
分享
06-13 10:15
门头沟学院 Java
想去夏威夷的大西瓜在...:我也是27届,但是我现在研一下了啥项目都没有呀咋办,哎,简历不知道咋写
点赞 评论 收藏
分享
06-23 11:28
门头沟学院 Java
牛客91966197...:也有可能是点拒绝的时候自动弹的话术
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务