This study aims to analyze the efficiency of computation time and memory allocation of eight sorting algorithms (Bubble Sort, Selection Sort, Insertion Sort, Quick Sort, Merge Sort, Heap Sort, Counting Sort, and Radix Sort) implemented in C++ programming language. The test dataset consists of three size categories: 100, 1,000, and 10,000 elements, randomly generated with values between 1 and 99. This range was chosen so that the tests are conducted under conditions of limited value and contain a lot of duplication, in order to support consistent efficiency evaluation. The research method involved generating datasets using the random array function, measuring execution time in nanoseconds, and monitoring memory usage through the WorkingSetSize metric. Each algorithm was tested three times on each category of data to ensure consistency of results. The results showed that Heap Sort achieved the fastest execution time on small data (101,266 nanoseconds for 100 elements), Counting Sort and Radix Sort excelled on medium data, while Counting Sort delivered the best performance on large data (1,483,166 nanoseconds for 10,000 elements). Counting Sort also demonstrated stable memory efficiency compared to the other algorithms, whereas Bubble Sort consistently exhibited the poorest performance across all scales. The research conclusion recommends Heap Sort for small-scale data, Counting Sort and Radix Sort for medium-scale data, and Counting Sort for large-scale data. The findings provide practical guidance for developers in selecting algorithms according to data scale and resource availability.