How can I make this better?public int BubbleSortNonEfficient(int[] arr) {            int temp = 0;            int LoopCount = 0;            for(int write = 0; write < arr.Length; write++) {                for(int sort = 0; sort < arr.Length - 1; sort++) {                    LoopCount++;                    if(arr[sort] > arr[sort + 1]) {                        temp = arr[sort + 1];                        arr[sort + 1] = arr[sort];                        arr[sort] = temp;                    }                }            }            return LoopCount;        }
Bubble sort in C#
c#;sorting
Your implementation will run in quadratic time in all cases. You can optimize here a bit:public static int BubbleSort(int[] arr) {    int loopCount = 0;    for (int i = 1; i < arr.Length; ++i) {        bool swapped = false;        for (int j = 0; j < arr.Length - i; ++j) {            loopCount++;            if (arr[j] > arr[j + 1]) {                swapped = true;                int temp = arr [j];                arr [j] = arr[j + 1];                arr [j + 1] = temp;            }        }        if (!swapped) {            break;        }    }    return loopCount;}The above alternative will run faster whenever the input array is presorted, i.e., exhibits a lot of order. Declaring the sort as static will allow the user to use your sort without actually instantiating the class it belongs to.Last but not least: you can declare temp in the body of the inner loop, since it affects nothing.