Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Diagnostics;
- namespace testspeed {
- class Program {
- static int mAxInt = int.MaxValue / 1000;
- static void Main(string[] args) {
- int[] speedArray = new int[mAxInt];
- for (int i = 0; i < mAxInt; i++)
- speedArray[i] = i;
- int[] arrSpeed2 = new int[mAxInt];
- Array.Copy(speedArray, arrSpeed2, mAxInt);
- int[] arrSpeed3 = new int[mAxInt];
- Array.Copy(speedArray, arrSpeed3, mAxInt);
- List<int> speedList = speedArray.ToList();
- Stopwatch s = new Stopwatch();
- s.Start();
- for(int i = 0; i < 10; i++) {
- moveElement(ref speedArray, 500000);
- }
- s.Stop();
- Console.WriteLine("Speed for moveElement: " + s.ElapsedMilliseconds + ", ticks: " + s.ElapsedTicks);
- s.Reset();
- s.Start();
- for(int i = 0; i < 10; i++) {
- ShiftRightAt<int>(arrSpeed2, 500000);
- }
- s.Stop();
- Console.WriteLine("Speed for ShiftRightAt: " + s.ElapsedMilliseconds + ", ticks: " + s.ElapsedTicks);
- s.Reset();
- s.Start();
- for (int i = 0; i < 10; i++) {
- shiftthing(ref speedList, 500000);
- }
- s.Stop();
- Console.WriteLine("Speed for shiftlist: " + s.ElapsedMilliseconds + ", ticks: " + s.ElapsedTicks);
- s.Reset();
- s.Start();
- for (int i = 0; i < 10; i++) {
- arrayCopy(500000, ref arrSpeed3);
- }
- s.Stop();
- Console.WriteLine("Speed for arrayCopy: " + s.ElapsedMilliseconds + ", ticks: " + s.ElapsedTicks);
- Console.ReadLine();
- }
- public static void moveElement(ref int[] array, int index) {
- int[] save = new int[] { array[index] };
- var rest = array.Take(index).Concat(array.Skip(index + 1));
- array = save.Concat(rest).ToArray();
- }
- public static void ShiftRightAt<T>(T[] array, int index) {
- if (index < 0 || index >= array.Length) return; // throw exception
- var element = array[index]; // take out the element
- for (int i = index; i > 0; i--) {
- array[i] = array[i - 1];
- }
- array[0] = element;
- }
- public static void shiftthing(ref List<int> list, int index) {
- var mem = list[index];
- list.Remove(index);
- list.Insert(0, mem);
- }
- public static void arrayCopy(int elementAt, ref int[] array) {
- int[] arr1 = new int[array.Length];
- arr1[0] = array[elementAt];
- Array.Copy(array, 0, arr1, 1, elementAt);
- Array.Copy(array, elementAt + 1, arr1, elementAt + 1, array.Length - elementAt - 1);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement