scholarly journals Parallel Counting Sort: A Modified of Counting Sort Algorithm

Author(s):  
Pratyaksa Ocsa Nugraha Saian

Sorting is one of a classic problem in computer engineer. One well-known sorting algorithm is a Counting Sort algorithm. Counting Sort had one problem, it can’t sort a positive and negative number in the same input list. Then, Modified Counting Sort created to solve that’s problem. The algorithm will split the numbers before the sorting process begin. This paper will tell another modification of this algorithm. The algorithm called Parallel Counting Sort. Parallel Counting Sort able to increase the execution time about 70% from Modified Counting Sort, especially in a big dataset (around 1000 and 10.000 numbers).

Sorting is an essential conceptin the study of data structures. There are many sorting algorithms that can sort elements in a given array or list. Counting sort is a sorting algorithm that has the best time complexity. However, the counting sort algorithm only works for positive integers. In this paper, an extension of the counting sort algorithm is proposed that can sort real numbers and integers (both positive and negative).


2020 ◽  
Vol 12 (2) ◽  
pp. 96-103
Author(s):  
Desi Anggreani ◽  
Aji Prasetya Wibawa ◽  
Purnawansyah Purnawansyah ◽  
Herman Herman

The most used algorithm is the sorting algorithm. There have been many popping sorting algorithms that can be used, in this study researchers took three sorting algorithms namely Insertion Sort, Selection Sort, and Merge Sort. As for this study will analyze the comparison of execution time and memory usage by considering the number of enter data of each algorithm used. The data used in this study is ukhuwah NET network bandwidth usage data connected in the Faculty of Computer Science in the form of double data types. After implementing and analyzing in terms of execution time merge sort algorithm has a faster execution time in sorting data with an average execution time value of 108.593777 ms on the 3000 data count. While in the same amount of data for the most execution time is the Selection Sort algorithm with a large execution time of 144.498144 ms, in terms of memory usage with the amount of data3000 Merge Sort Algorithm has the highest memory usage compared to the other two algorithms which is 21,444 MB while the other two algorithms have a succession of memory usage of 20,837 MB and 20,325MB.


2020 ◽  
Vol 11 (2) ◽  
pp. 95-102
Author(s):  
I Nyoman Aditya Yudiswara ◽  
Abba Suganda

Processor technology currently tends to increase the number of cores more than increasing the clock speed. This development is very useful and becomes an opportunity to improve the performance of sequential algorithms that are only done by one core. This paper discusses the sorting algorithm that is executed in parallel by several logical CPUs or cores using the openMP library. This algorithm is named QDM Sort which is a combination of sequential quick sort algorithm and double merge algorithm. This study uses a data parallelism approach to design parallel algorithms from sequential algorithms. The data used in this study are the data that have not been sorted and also the data that has been sorted is integer type which is stored in advance in a file. The parameter measured to determine the performance of the QDM Sort algorithm is speedup. In a condition where a large amount of data is above 4096 and the number of threads in QDM Sort is the same as the number of logical CPUs, the QDM Sort algorithm has a better speedup compared to the other parallel sorting algorithms discussed in this study. For small amounts of data it is still better to use sequential sorting algorithm.


2021 ◽  
Vol 2021 ◽  
pp. 1-16
Author(s):  
Yu Bo Song ◽  
Hai Bo Mu

This paper addresses the sequence sorting problem of large-scale storage/retrieval (S/R) requests in multiple Input/Output (multi-I/O) depots automated storage/retrieval systems (AS/RS), in which the cargoes can enter/leave the system through multi-I/O depots, the stacker can load only one cargo, and the load travel time of stacker is fixed. The problem is to find an optimal sequence for a certain S/R requests sequence, and it is a special kind of traveling salesman problem. In this paper, a heuristic algorithm based on assignment is proposed. In order to eliminate the subloops emerged in the sorting process, the equivalent merging and minimum cost merging methods of subloops are considered, and the proposed algorithm is modified. Experimental results indicate the effectiveness of the proposed algorithm.


Author(s):  
A. Kalaivani ◽  
K. Swetha

Sorting is a technique which is used to arrange the data in specific order. A sorting technique is applied to rearrange the elements in numerical order as ascending order or descending order or for words in alphabetical order. In this paper, we propose an efficient sorting algorithm known as Enhanced Bidirectional Insertion Sorting algorithm which is developed from insertion sort concept. A comparative analysis is done for the proposed Enhanced Bidirectional Insertion Sort algorithm with the selection sort and insertion sort algorithms. When compared to insertion sort algorithm the proposed algorithm outperforms with less number of comparisons in worst case and average case computing time. The proposed algorithm works efficiently for duplicated elements which is the advanced improvement and the results are proved.


2020 ◽  
Vol 11 (1) ◽  
pp. 17
Author(s):  
Eduardus Hardika Sandy Atmaja ◽  
Kartono Pinaryanto

Abstract. Sorting is the most basic and important process in data processing. The sorting process on large data causes large computation. Some existing sorting algorithms need to be improved to further improve their performance. This study tried to develop an existing selection sort algorithm, into a selection sort hybrid algorithm that is expected to have better performance. Selection sort hybrid algorithm is an algorithm that combines both minimum and maximum searching techniques. It can find minimum and maximum values in the same time to sort from the both side of the data. Since it can be done separately, multithreading is used to do this job. So the sorting process can be done simultaneously. Several tests using different amounts of data have been conducted to compare the performance of the algorithms. The result is selection sort hybrid algorithm more efficient than the origin selection sort. Henceforth, the result obtained from the research can be used for various purposes related to data processing in informatics area.Keywords: sorting, selection sort, selection sort hybrid, computingAbstrak. Sorting atau pengurutan adalah proses yang paling mendasar dan penting dalam pemrosesan data. Proses pengurutan pada data yang besar menyebabkan komputasi menjadi tinggi. Maka beberapa algoritme pengurutan perlu ditingkatkan kinerjanya. Penelitian ini mencoba mengembangkan algoritme selection sort, menjadi algoritme selection sort hybrid yang diharapkan memiliki kinerja yang lebih baik. Algoritme selection sort hybrid adalah algoritme yang menggabungkan teknik pencarian minimum dan maksimum. Algoritme tersebut dapat menemukan nilai minimum dan maksimum dalam waktu yang bersamaan untuk mengurutkan data dari kedua sisinya. Karena dapat dikerjakan secara terpisah, maka teknik multithreading digunakan untuk melakukan pekerjaan ini. Jadi proses pengurutan data bisa dilakukan secara simultan. Beberapa pengujian menggunakan jumlah data yang berbeda telah dilakukan untuk membandingkan kinerja kedua algoritme ini. Hasilnya adalah algoritme selection sort hybrid lebih efisien daripada algoritme selection sort untuk semua kasus yang diberikan. Diharapkan hasil yang diperoleh dari penelitian ini dapat digunakan untuk berbagai keperluan terkait dengan pengolahan data di bidang informatika.Kata kunci: Pengurutan, selection sort, selection sort hybrid, komputasi


2021 ◽  
Vol 7 ◽  
pp. e769
Author(s):  
Bérenger Bramas

The way developers implement their algorithms and how these implementations behave on modern CPUs are governed by the design and organization of these. The vectorization units (SIMD) are among the few CPUs’ parts that can and must be explicitly controlled. In the HPC community, the x86 CPUs and their vectorization instruction sets were de-facto the standard for decades. Each new release of an instruction set was usually a doubling of the vector length coupled with new operations. Each generation was pushing for adapting and improving previous implementations. The release of the ARM scalable vector extension (SVE) changed things radically for several reasons. First, we expect ARM processors to equip many supercomputers in the next years. Second, SVE’s interface is different in several aspects from the x86 extensions as it provides different instructions, uses a predicate to control most operations, and has a vector size that is only known at execution time. Therefore, using SVE opens new challenges on how to adapt algorithms including the ones that are already well-optimized on x86. In this paper, we port a hybrid sort based on the well-known Quicksort and Bitonic-sort algorithms. We use a Bitonic sort to process small partitions/arrays and a vectorized partitioning implementation to divide the partitions. We explain how we use the predicates and how we manage the non-static vector size. We also explain how we efficiently implement the sorting kernels. Our approach only needs an array of O(log N) for the recursive calls in the partitioning phase, both in the sequential and in the parallel case. We test the performance of our approach on a modern ARMv8.2 (A64FX) CPU and assess the different layers of our implementation by sorting/partitioning integers, double floating-point numbers, and key/value pairs of integers. Our results show that our approach is faster than the GNU C++ sort algorithm by a speedup factor of 4 on average.


2016 ◽  
Vol 9 (2) ◽  
pp. 113
Author(s):  
Dwi Marhaendro Jati Purnomo ◽  
Ahmad Arinaldi ◽  
Dwi Teguh Priyantini ◽  
Ari Wibisono ◽  
Andreas Febrian

Sorting is common process in computational world. Its utilization are on many fields from research to industry. There are many sorting algorithm in nowadays. One of the simplest yet powerful is bubble sort. In this study, bubble sort is implemented on FPGA. The implementation was taken on serial and parallel approach. Serial and parallel bubble sort then compared by means of its memory, execution time, and utility which comprises slices and LUTs. The experiments show that serial bubble sort required smaller memory as well as utility compared to parallel bubble sort. Meanwhile, parallel bubble sort performed faster than serial bubble sort


2021 ◽  
Vol 7 ◽  
pp. e355
Author(s):  
Suluk Chaikhan ◽  
Suphakant Phimoltares ◽  
Chidchanok Lursinsap

Tremendous quantities of numeric data have been generated as streams in various cyber ecosystems. Sorting is one of the most fundamental operations to gain knowledge from data. However, due to size restrictions of data storage which includes storage inside and outside CPU with respect to the massive streaming data sources, data can obviously overflow the storage. Consequently, all classic sorting algorithms of the past are incapable of obtaining a correct sorted sequence because data to be sorted cannot be totally stored in the data storage. This paper proposes a new sorting algorithm called streaming data sort for streaming data on a uniprocessor constrained by a limited storage size and the correctness of the sorted order. Data continuously flow into the storage as consecutive chunks with chunk sizes less than the storage size. A theoretical analysis of the space bound and the time complexity is provided. The sorting time complexity is O (n), where n is the number of incoming data. The space complexity is O (M), where M is the storage size. The experimental results show that streaming data sort can handle a million permuted data by using a storage whose size is set as low as 35% of the data size. This proposed concept can be practically applied to various applications in different fields where the data always overflow the working storage and sorting process is needed.


Data sorting hasmany advantages and applications in software and web development. Search engines use sorting techniques to sorttheresult before itispresented totheuser.Thewordsinadictionary are insorted ordersothatthewords canbe found easily.There aremanysorting algorithms that areused in many domains to perform some operation and obtain the desired output. But there are some sorting algorithms that take large time in sorting the data. This huge time can be vulnerable to the operation. Every sorting algorithm has the different sorting technique to sort the given data, Stooge sort is asorting algorithm which sorts the data recursively. Stooge sort takes comparatively more time as compared tomany othersorting algorithms.Stooge sortworks recursively to sort the data element but the Optimized Stooge sort does not use recursive process. In this paper, we propose Optimized Stooge sort to reduce the time complexity of the Stooge sort. The running time of Optimized Stooge sort is very much reduced as compared to theStooge sort algorithm. The existing researchfocuses onreducing therunning time of Stooge sort. Our results show that the Optimized Stooge sort is faster than the Stooge sort algorithm.


Sign in / Sign up

Export Citation Format

Share Document