TL;DR: Sorting and associated concepts insertion sort shellsort bubble sort bubble sort selection sort sorting by counting quick sort sample sort heap sort merge sort bucket sorts sorting non-random data epilogue answers to exercises a notation and standard results from probability theory.
Abstract: Sorting and associated concepts insertion sort shell sort bubble sort selection sort sorting by counting quick sort sample sort heap sort merge sort bucket sorts sorting non-random data epilogue answers to exercises a notation and standard results from probability theory.
TL;DR: The many sorting logic described here has several unusual features which not only increase expressiveness but also can reduce the search space even more than a conventional many sorted logic.
Abstract: Many sorted logics can increase deductive efficiency by eliminating useless branches of the search space, but usually this results in reduced expressiveness. The many sorted logic described here has several unusual features which not only increase expressiveness but also can reduce the search space even more than a conventional many sorted logic. The quantifiers are unsorted: the restriction on the range of a variable derives from the argument positions of the nonlogical symbols that it occupies. Polymorphic sort specifications are allowed; thus statements usually requiring several assertions may be compactly expressed by a single assertion. The sort structure may be an arbitrary lattice and the sort of a term can be more general than the sort of the argument position it occupies. It is also shown how it is sometimes possible to use sort information to determine the truth value of a formula without resort normal inference. Inference rules for a resolution based system are discussed; these can be proved to be sound and complete.
TL;DR: The main algorithmic insight is that element comparisons can be decoupled from expensive conditional branching using predicated instructions, which facilitates optimizations like loop unrolling and software pipelining.
Abstract: Sample sort, a generalization of quicksort that partitions the input into many pieces, is known as the best practical comparison based sorting algorithm for distributed memory parallel computers. We show that sample sort is also useful on a single processor. The main algorithmic insight is that element comparisons can be decoupled from expensive conditional branching using predicated instructions. This transformation facilitates optimizations like loop unrolling and software pipelining. The final implementation, albeit cache efficient, is limited by a linear number of memory accesses rather than the \(\mathcal{O}\!\left(n\log n\right)\) comparisons. On an Itanium 2 machine, we obtain a speedup of up to 2 over std::sort from the GCC STL library, which is known as one of the fastest available quicksort implementations.
TL;DR: A new sort algorithm, called AlphaSort, demonstrates that commodity processors and disks can handle commercial batch workloads and argues that modern architectures require algorithm designers to re-examine their use of the memory hierarchy.
Abstract: A new sort algorithm, called AlphaSort, demonstrates that commodity processors and disks can handle commercial batch workloads. Using commodity processors, memory, and arrays of SCSI disks, AlphaSort runs the industry-standard sort benchmark in seven seconds. This beats the best published record on a 32-CPU 32-disk Hypercube by 8:1. On another benchmark, AlphaSort sorted more than a gigabyte in one minute. AlphaSort is a cache-sensitive, memory-intensive sort algorithm. We argue that modern architectures require algorithm designers to re-examine their use of the memory hierarchy. AlphaSort uses clustered data structures to get good cache locality, file striping to get high disk bandwidth, QuickSort to generate runs, and replacement-selection to merge the runs. It uses shared memory multiprocessors to break the sort into subsort chores. Because startup times are becoming a significant part of the total time, we propose two new benchmarks: (1) MinuteSort: how much can you sort in one minute, and (2) PennySort: how much can you sort for one penny.
TL;DR: This study experimentally shows that VR‐ENITE which is based on virtual reality technology is effective for teaching software engineering courses and it has assistive capabilities for traditional teaching approaches.
Abstract: The popularity of virtual reality headsets have been rapidly increasing. With this technology, students can efficiently interact with the course content and learn the material faster than the traditional methodologies. In addition to this benefit, virtual reality devices also draw the attention of young generation and this helps to the widespread use of this technology among students. In this study, we investigate the use of virtual reality on the performance of computer engineering bachelor science (BS) students within the scope of Data Structures course and develop a software-intensive system called "Virtual Reality Enhanced Interactive Teaching Environment" (VR-ENITE). Specifically, we focus on the sorting algorithms such as selection sort, bubble sort, insertions sort, and merge sort which are relatively hard to be understood by the BS students at first glance. For the evaluation of VR-ENITE, students were divided into two groups: a group which uses VR-ENITE in addition to the traditional teaching material and the control group which utilizes from only the traditional material. In order to evaluate the performance of these two groups having 36 students in total, a multiple choice exam was delivered to all of them. According to the test results, students who used the VR-ENITE system got 12% more successful results in average than the students who are in the control group. This study experimentally shows that VR-ENITE which is based on virtual reality technology is effective for teaching software engineering courses and it has assistive capabilities for traditional teaching approaches.