Updated hw6 to a newer version
Signed-off-by: jmug <u.g.a.mariano@gmail.com>
This commit is contained in:
parent
9224001a22
commit
0c04936ccf
356 changed files with 8408 additions and 4725 deletions
68
hw6/hw4programs/msort2.oat
Normal file
68
hw6/hw4programs/msort2.oat
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
int program (int argc, string[] argv) {
|
||||
var a = new int[]{126,125,124,123,122,121,120,119,118,117};
|
||||
var i = 0;
|
||||
print_string (string_of_array(a));
|
||||
oat_mergesort(a,0,9);
|
||||
print_string (" ");
|
||||
print_string (string_of_array(a));
|
||||
print_string (" ");
|
||||
return i;
|
||||
}
|
||||
|
||||
void oat_mergesort(int[] a, int low, int high)
|
||||
{
|
||||
var mid=0;
|
||||
if(low<high)
|
||||
{
|
||||
mid=(low+high)>>1;
|
||||
oat_mergesort(a,low,mid);
|
||||
oat_mergesort(a,mid+1,high);
|
||||
merge(a,low,high,mid);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
void merge(int[] a, int low, int high, int mid)
|
||||
{
|
||||
var i=0;
|
||||
var j=0;
|
||||
var k=0;
|
||||
var c=new int[50];
|
||||
i=low;
|
||||
j=mid+1;
|
||||
k=low;
|
||||
while((i<=mid)&(j<=high))
|
||||
{
|
||||
if(a[i]<a[j])
|
||||
{
|
||||
c[k]=a[i];
|
||||
k=k+1;
|
||||
i=i+1;
|
||||
}
|
||||
else
|
||||
{
|
||||
c[k]=a[j];
|
||||
k=k+1;
|
||||
j=j+1;
|
||||
}
|
||||
}
|
||||
while(i<=mid)
|
||||
{
|
||||
c[k]=a[i];
|
||||
k=k+1;
|
||||
i=i+1;
|
||||
}
|
||||
while(j<=high)
|
||||
{
|
||||
c[k]=a[j];
|
||||
k=k+1;
|
||||
j=j+1;
|
||||
}
|
||||
i=low;
|
||||
for(;i<k;i=i+1;)
|
||||
{
|
||||
a[i]=c[i];
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue