繁体   English   中英

c中的升序和降序

[英]ascending and descending order in c

我是 c、c++ 和 java 等编程语言的初学者我真的需要有人指导我所以问题是:这段代码,我在 borland c++ 上写的

1)

for (i = 0; i < n; i++)
{
    for (j = i; j < n; j++)
    {
        if (number[i] > number[j])
        {
        a =  number[i];
        number[i] = number[j];
        number[j] = a;
        }
    }
} 

2)

for (i = 0; i < n; i++)
{
    for (j = 0; j < n; j++)
    {
        if (number[i] > number[j])
        {
        a =  number[i];
        number[i] = number[j];
        number[j] = a;
        }
   }
} 

在第一个代码中,内部 for 循环 j=i 中的逻辑将按升序对数字进行排序,在第二个代码中,内部 for 循环中的逻辑 j=0 将按降序对数字进行排序。

现在我的问题是:为什么逻辑 j=i 将数字按升序排序,为什么逻辑 j=0 将数字按降序排序,有人可以解释工作概念以及逻辑 j=i 和 j= 之间的区别吗? 0?

第二个代码与第一个代码不同的是,循环开始按升序对数字进行排序(就像第一个代码一样),但因为第二个(内部循环)将当前数字与开头已经排序的数字进行比较(这是最小的)交换位置。 因此,我们首先得到最大的数字。 看它好像第一个代码是第二个代码的第一步:先把数字按顺序排列,然后按降序排列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM