69 lines
No EOL
1.3 KiB
Text
69 lines
No EOL
1.3 KiB
Text
int[] sort(int[] arr, int len)
|
|
{
|
|
var copy = new int[len];
|
|
for (var i = 0; i < len; i = i + 1;) {
|
|
copy[i] = arr[i];
|
|
}
|
|
|
|
for (var i = 1; i < len; i = i + 1;) {
|
|
var key = copy[i];
|
|
var j = (i - 1);
|
|
|
|
var inwhile = j >= 0 & copy[j] > key;
|
|
while (inwhile) {
|
|
copy[j + 1] = copy[j];
|
|
j = j - 1;
|
|
if (j < 0) {
|
|
inwhile = false;
|
|
} else {
|
|
if (copy[j] <= key) {
|
|
inwhile = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
copy[j + 1] = key;
|
|
}
|
|
|
|
return copy;
|
|
}
|
|
|
|
bool checksorted(int[] arr, int len) {
|
|
if (len == 1) {
|
|
return true;
|
|
}
|
|
for (var i = 0; i < (len - 1); i = i + 1;)
|
|
{
|
|
if (arr[i+1] < arr[i]) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* for debugging */
|
|
void print_arr(int[] sorted, int len)
|
|
{
|
|
print_string("\nDescending sorted array[");
|
|
for (var i = 0; i < len; i = i + 1;)
|
|
{
|
|
print_int(sorted[i]);
|
|
if (i < len - 1) {
|
|
print_string(",");
|
|
}
|
|
}
|
|
print_string("]\n\n");
|
|
return;
|
|
}
|
|
|
|
int program (int argc, string[] argv) {
|
|
var arr = new int[]{ 12, 11, 13, 5, 6 };
|
|
var len = length(arr);
|
|
var sorted = sort(arr, len);
|
|
|
|
if (checksorted(sorted, len)) {
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
} |