81,006 research outputs found

    Energy-Efficient Algorithms

    Full text link
    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

    Get PDF
    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

    Get PDF
    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
    • …
    corecore