数组遍历从给定索引到第一个索引

时间:2016-02-15 14:54:47

标签: ada

我参加了一个算法课程,其中教师决定使用Ada作为编程语言工具来测试我们的理解。争论的焦点是ADA语言非常接近CLRS书中出现的伪代码。

下面的代码是ADA中选择排序的片段:

from django.conf.urls import patterns, include, url
from todo import views
from rest_framework import viewsets, routers
from django.contrib import admin

router = routers.DefaultRouter()

admin.autodiscover()

urlpatterns = patterns('',

    url(r'^admin/', admin.site.urls),
    url(r'^', include(router.urls)),
 )

以下内容:

   procedure Selection_Sort(Data : in out List) is
   begin
      for Destination_Index in Data'Range loop
         for Source_Index in Destination_Index + 1 .. Data'Last loop
            if Data(Source_Index) < Data(Destination_Index) then
               Swap(Data, Source_Index, Destination_Index);
            end if;
         end loop;
      end loop;
   end Selection_Sort;

将导致从给定元素(Data 1)遍历数组到最后一个元素,但是如果我希望从最后一个元素遍历到第一个元素,则以下内容似乎不起作用。

for Source_Index in Destination_Index + 1 .. Data'Last loop

如果有人可以帮我解决这个微不足道的问题,那将是非常有帮助的,这样我就可以继续处理手头的主要问题,即学习算法。

1 个答案:

答案 0 :(得分:5)

A .. B范围A > B会产生空白范围。关于for周期,reverse关键字定义了一个降序循环(ARM 5.5 (9)的结尾)。因此,reverse A .. B,其中A < B将导致从B循环到A

剩下的就是为了学习而留给你的。为了学习一些东西,你不能避免在第一时间学习。