81,006 research outputs found
Energy-Efficient Algorithms
We initiate the systematic study of the energy complexity of algorithms (in
addition to time and space complexity) based on Landauer's Principle in
physics, which gives a lower bound on the amount of energy a system must
dissipate if it destroys information. We propose energy-aware variations of
three standard models of computation: circuit RAM, word RAM, and
transdichotomous RAM. On top of these models, we build familiar high-level
primitives such as control logic, memory allocation, and garbage collection
with zero energy complexity and only constant-factor overheads in space and
time complexity, enabling simple expression of energy-efficient algorithms. We
analyze several classic algorithms in our models and develop low-energy
variations: comparison sort, insertion sort, counting sort, breadth-first
search, Bellman-Ford, Floyd-Warshall, matrix all-pairs shortest paths, AVL
trees, binary heaps, and dynamic arrays. We explore the time/space/energy
trade-off and develop several general techniques for analyzing algorithms and
reducing their energy complexity. These results lay a theoretical foundation
for a new field of semi-reversible computing and provide a new framework for
the investigation of algorithms.Comment: 40 pages, 8 pdf figures, full version of work published in ITCS 201
Improved Shellsort for the Worst-Case, the Best-Case and a Subset of the Average-Case Scenarios
Sorting involves rearrangement of items into ascending or descending order. There are several sorting algorithms but some are more efficient than others in terms of speed and memory utilization. Shellsort improves on Insertion sort by
decreasing the number of comparisons made on the items to be sorted. This paper presents an Improved Shellsort algorithm that further decreases the number of comparisons made on the items to be sorted through a modified
diminishing increment sort. The results obtained from the implementation of both Shellsort and the proposed algorithm shows that the proposed algorithm has a fewer number of
comparisons made for all input sizes of the best and worst cases and for input size of twenty or less for the average case. By implication, this means that the proposed algorithm is faster in these situations. The strength of the algorithm however diminishes for only the average
case of input size greater than twenty
Aplikasi Simulasi Pengurutan Data Menggunakan Algoritma Heap Sort
Untuk memecahkan masalah pengurutan dalam membangun suatu program aplikasi, dibutuhkan algoritma pengurutan. Metode-metode pengurutan data pun ada berbagai jenis. Mulai dari binary sort, insertion sort, merge sort, Heap Sort dll. Heap Sort, algoritma pengurutan, merupakan salah satu metode pengurutan yang sering digunakan. Algoritma Heap Sort termasuk algoritma sorting yang susah dipahami karena banyak langkah-langkah dalam mengurutkan data. Dikembangkannya perangkat lunak simulasi Heap Sort, diharapkan dapat membantu dalam pemahaman algoritma ini. Dalam penelitian ini penulis mengembangkan sebuah program aplikasi simulasi pengurutan data menggunakan algoritma Heap Sort. Program aplikasi kompresi yang dibuat dapat digunakan pada sistem operasi Windows 7 dan XP, dengan menggunakan bahasa pemrograman Microsoft Visual Basic 6.0. Tujuan akhir dari implementasi perangkat lunak ini adalah diharapkan agar pembaca dan pengembang sistem dimasa yang akan datang dapat mengembangkan dan memperbaiki kekurangan serta keterbatasan yang terdapat pada perangkat lunak ini
- …