SoluableNonagon
SoluableNonagon

Reputation: 11752

Java - sort only subsection of array

I have an array of characters

String a = "badabcde";
char[] chArr = a.toCharArray(); // 'b','a','d','a','b','c','d','e'

What's the easiest way to sort only a section of the array, given a start and end index?

// 'b','a','d','a','b','c','d','e'
subSort(array, startIndex, endIndex);

Ex: 
subSort(chArr, 2, 5);
// 'b','a','a','b','c','d','d','e' // sorts indices 2 to 5 

Upvotes: 15

Views: 16500

Answers (4)

emin
emin

Reputation: 752

I think public static void sort(char[] a, int fromIndex, int toIndex) answers your question.

String a = "badabcde";
char[] chArr = a.toCharArray(); // 'b','a','d','a','b','c','d','e'

// fromIndex - the index of the first element (inclusive) to be sorted
// toIndex - the index of the last element (exclusive) to be sorted
Arrays.sort(chArr,2,6);

Upvotes: 24

hoat4
hoat4

Reputation: 1210

Use Arrays.sort([], int startIndex, int endIndex).

 String a = "badabcde";
 char[] chArr = a.toCharArray(); // 'b','a','d','a','b','c','d','e'
 Arrays.sort(chArr, 2, 5);
 System.out.println(new String(chArr)); // this prints baabdcde

Upvotes: 2

PaulBGD
PaulBGD

Reputation: 2084

Check out Arrays.sort().

Example usage:

Arrays.sort(chhArr, 2, 5);

Upvotes: 1

Eran
Eran

Reputation: 394156

Use public static void sort(char[] a, int fromIndex, int toIndex) in Arrays class.

In your example:

Arrays.sort(chArr,2,6); // note that fromIndex is inclusive
                        // but toIndex is exclusive

Upvotes: 6

Related Questions