Implementation and Performance Comparison of Some Heuristic Algorithms for Block Sorting

Document Type

Conference Proceeding

Publication Date



Block Sorting is an APX-hard combinatorial optimization problem motivated by applications in genome rearrangements. While previous works on block sorting have mainly focused on theoretical analyses of approximation algorithms, in this work we develop an implementation framework for block sorting in the Java programming language. Our framework uses a simple data structure for a block and includes methods to: manipulate blocks; extract useful information about blocks at various stages in a block sorting algorithm; and perform block moves. We use this framework to implement algorithms for block sorting, based on three different heuristics: 1) each block move guarantees a reduction of at least one block; 2) block moves are performed only on those blocks which are not members of the longest increasing subsequence (of blocks) in the original permutation; and 3) each block move either reduces the number of blocks by two or three blocks, or reduces the number of reversals or inversions in the original permutation. We analyze and compare these algorithms for their performance as the order of permutations is varied, using the measures of number of block moves and approximation ratios when sorting kernelized permutations of a given order. To the best of our knowledge this is the first work that is focused on implementation and experimental performance analysis of any algorithm for block sorting. We believe our results will be useful for researchers and practitioners working in this area.

Publication Title

Proceedings - 2017 IEEE 17th International Conference on Bioinformatics and Bioengineering, BIBE 2017



First Page


Last Page


Digital Object Identifier (DOI)