static void Main(string[] args)
{
InsertionSortDemo();
Console.ReadLine();
}
static void InsertionSortDemo()
{
Random rnd = new Random();
int[] arr = new int[100];
for (int i = 0; i < 100; i++)
{
arr[i] = rnd.Next(0, 1000);
}
Console.WriteLine("Raw data:");
foreach (var a in arr)
{
Console.Write(a + "\t");
}
InsertionSort(arr);
Console.WriteLine("\n\n\nAfter insertion sort:");
foreach(var a in arr)
{
Console.Write(a + "\t");
}
}
static void InsertionSort(int[] arr)
{
int inner, temp;
for (int outer = 0; outer < arr.Length; outer++)
{
temp = arr[outer];
inner = outer;
while (inner > 0 && arr[inner - 1] >= temp)
{
arr[inner] = arr[inner - 1];
inner--;
}
arr[inner] = temp;
}
}
static void SelectSortDemo()
{
Random rnd = new Random();
int[] arr = new int[100];
for (int i = 0; i < 100; i++)
{
arr[i] = rnd.Next(0, 10000);
}
Console.WriteLine("Raw data:");
foreach (var a in arr)
{
Console.Write(a + "\t");
}
SelectionSort(arr);
Console.WriteLine("\n\n\nAfter selection sort:");
foreach(var a in arr)
{
Console.Write(a + "\t");
}
}
public void SelectSort(int[] arr)
{
int min;
for(int outer=0;outer<=arr.Length;outer++)
{
min = outer;
for(int inner=outer+1;inner<=arr.Length;inner++)
{
if(arr[inner]<arr[min])
{
min = inner;
}
}
if(min!=outer)
{
int temp = arr[min];
arr[min] = arr[outer];
arr[outer] = temp;
}
}
}
static void SelectionSortDemo()
{
Random rnd = new Random();
int[] arr = new int[100];
for (int i = 0; i < 100; i++)
{
arr[i] = rnd.Next(0, 1000);
}
Console.WriteLine("Raw data:");
foreach (var a in arr)
{
Console.Write(a + "\t");
}
int[] selectionArr = SelectionSort(arr);
Console.WriteLine("\n\nSelection sort:");
foreach(var a in selectionArr)
{
Console.Write(a + "\t");
}
}
static int[] SelectionSort(int[] arr)
{
int min = 0;
for(int i=0;i<arr.Length-1;i++)
{
min = i;
for(int j=i+1;j<arr.Length;j++)
{
if(arr[j]<arr[min])
{
min = j;
}
}
if (i != min)
{
int temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
return arr;
}
static void BubbleDemo()
{
Random rnd = new Random();
int[] arr = new int[100];
for(int i=0;i<100;i++)
{
arr[i] = rnd.Next(0, 1000);
}
Console.WriteLine("Raw data:");
foreach(var a in arr)
{
Console.Write(a + "\t");
}
int[] ascArr = BubbleSort(arr, true);
Console.WriteLine("\n\n\nAsc order:");
foreach(var a in ascArr)
{
Console.Write(a + "\t");
}
int[] descArr = BubbleSort(arr, false);
Console.WriteLine("\n\n\nDesc order:");
foreach(var a in descArr)
{
Console.Write(a + "\t");
}
}
static int[] BubbleSort(int[] arr,bool isAsc)
{
if(arr==null && arr.Length==0)
{
return null;
}
for(int i=0;i<arr.Length;i++)
{
for(int j=i+1;j<arr.Length;j++)
{
//Ascending
if(isAsc)
{
if(arr[i]>arr[j])
{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
//Descending
else
{
if(arr[i]<arr[j])
{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
return arr;
}