Skip to content

Instantly share code, notes, and snippets.

@chaliy
Created January 26, 2014 14:21
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chaliy/8633472 to your computer and use it in GitHub Desktop.
Save chaliy/8633472 to your computer and use it in GitHub Desktop.
процедура MergeSort (мод a: t) це
процедура Merge(арг a: t; Size: нат; рез b: t) це
змін i, j, k, r1, r2: нат;
поч
k <- 1;
поки k<=n повт
{визначення границь підмасивів}
i <- k; r1 <- i+Size-1;
якщо r1>n то r1 <- n кр;
j <- r1+1; r2 <- j+Size-1;
якщо r2>n то r2 <- n кр;
{злиття пари підмасивів}
поки i<=r1 & j<=r2 повт
якщо a[i]<a[j] то
b[k] <- a[i]; i <- i+1
інакше
b[k] <- a[j]; j <- j+1
кр;
k <- k+1
кц;
поки i<=r1 повт
b[k] <- a[i]; i <- i+1;
k <- k+1
кц;
поки j<=r2 повт
b[k] <- a[j]; j <- j+1;
k <- k+1
кц;
кц;
кп;
змін i, Size: нат; b: t;
поч
i <- 0; Size <- 1;
повт
i <- i+1
якщо i mod 2 = 1 то Merge(a, Size, b)
інакше Merge(b, Size, a) кр;
Size <- Size*2;
до Size >= n;
якщо i mod 2 = 1 то a <- b кр
кп;
@controlflow
Copy link

Похоже на Pascal вроде

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment