Simplify Reverse (C#) folder structure

This commit is contained in:
Zev Spitz
2022-01-17 08:34:09 +02:00
parent 83c053fbd1
commit 2028e95764
8 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,82 @@
using System;
using System.Text;
namespace Reverse
{
public class Reverser
{
protected int[] _array;
public Reverser(int arraySize)
{
_array = CreateRandomArray(arraySize);
}
public void Reverse(int index)
{
if (index > _array.Length)
{
return;
}
for (int i = 0; i < index / 2; i++)
{
int temp = _array[i];
int upperIndex = index - 1 - i;
_array[i] = _array[upperIndex];
_array[upperIndex] = temp;
}
}
public bool IsArrayInAscendingOrder()
{
for (int i = 1; i < _array.Length; i++)
{
if (_array[i] < _array[i - 1])
{
return false;
}
}
return true;
}
private int[] CreateRandomArray(int size)
{
if (size < 1)
{
throw new ArgumentOutOfRangeException(nameof(size), "Array size must be a positive integer");
}
var array = new int[size];
for (int i = 1; i <= size; i++)
{
array[i - 1] = i;
}
var rnd = new Random();
for (int i = size; i > 1;)
{
int k = rnd.Next(i);
--i;
int temp = array[i];
array[i] = array[k];
array[k] = temp;
}
return array;
}
public string GetArrayString()
{
var sb = new StringBuilder();
foreach (int i in _array)
{
sb.Append(" " + i + " ");
}
return sb.ToString();
}
}
}