Skip to content

A fast and reliable Java micro-library which chooses the sorting algorithm that best fits your needs and sorts the parameter.

License

Notifications You must be signed in to change notification settings

en0mia/OptimizedSort

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OptimizedSort

A fast and reliable Java micro-library which chooses the sorting algorithm that best fits your needs and sorts the parameter.

About The Project

While I was studying for my Algorithms course I started implementing a Java library which allows you to sort an array of items in the best way.

I implemented it thinking about different necessities and it went out that the time complexity is not everything. Sometimes you could have different necessities like stable or in-place sortings. This library chooses the algorithm that best fits your necessities.

(back to top)

Getting Started

This is an example of how you may give instructions on setting up your project locally. To get a local copy up and running follow these simple example steps.

Prerequisites

  • Download the latest JAR release here or pack the sources by yourself.

Installation

Add the JAR library to the dependencies of your your project.

(back to top)

Usage

First, create a class which implements Comparable:

public class Player implements Comparable<Player> {
  String name;
  int points;

  public Player(String name, int points) {
    this.name = name;
    this.points = points;
  }

  @Override
  public int compareTo(Player o) {
    return this.points - o.points;
  }

  @Override
  public String toString() {
    return this.name;
  }
}

Then, if you want to sort your array of object:

Player []players = new Player[]{
                new Player("Simone", 100),
                new Player("John", 20),
                new Player("Joe", 1),
                new Player("Robert", 7),
                new Player("Aldo", 2),
        };

        Sort<Player> sort = new Sort<>(players);

        // Sort the array
        players = sort.sort();

        // Print out the results
        for (Player p : players) {
            System.out.println(p);
        }

You can also configure the algorithm by yourself...

// Use Selection Sort
sort.setAlgorithm("selection");
// Use Heap Sort
sort.setAlgorithm("heap");
// Use Insertion Sort
sort.setAlgorithm("insertion");
// Use Merge Sort
sort.setAlgorithm("merge");
// Use Quick Sort
sort.setAlgorithm("quick");
// Use Shell Sort
sort.setAlgorithm("shell");

... or you can let the library choose the best one using the parameters...

// InPlace: TRUE
// Stable: TRUE
Sort<Player> sort = new Sort<>(players, true, true);

... and you can use a custom comparator too

public class CompareByName implements Comparator<Player> {
    @Override
    public int compare(Player o1, Player o2) {
        return o1.name.compareTo(o2.name);
    }
}
sort.setComparator(new CompareByName());
players = sort.sort();

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Simone Nicol - @en0mia

Project Link: https://github.com/en0mia/OptimizedSort

(back to top)

About

A fast and reliable Java micro-library which chooses the sorting algorithm that best fits your needs and sorts the parameter.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages