How to find out which is faster Arrays.parallelSort() or Arrays.sort() for large Arrays in Java

2 Answers

0 votes
package javaapplication1;

import java.util.Arrays;

public class JavaApplication1 {

    public static void main(String[] args) {

        try {

            long time1 = System.currentTimeMillis();

            for (int t = 0; t < 10; t++) {
                int[] arr = new int[1000000];
                for (int i = 0; i < arr.length; i++) {
                    arr[i] = (int) (Math.random() * 10000);
                }
                Arrays.parallelSort(arr);
            }

            long time2 = System.currentTimeMillis();

            for (int t = 0; t < 10; t++) {
                int[] arr = new int[1000000];
                for (int i = 0; i < arr.length; i++) {
                    arr[i] = (int) (Math.random() * 10000);
                }
                Arrays.sort(arr);
            }

            long time3 = System.currentTimeMillis();

            System.out.print("Arrays.parallelSort(): ");
            System.out.println(time2 - time1);

            System.out.print("Arrays.sort(): ");
            System.out.println(time3 - time2);

        } catch (Exception e) {
            System.out.println(e.toString());
        }
    }
}

/*
              
run:
 
Arrays.parallelSort(): 507
Arrays.sort(): 863
     
 */

 



answered Dec 13, 2016 by avibootz
0 votes
package javaapplication1;

import java.util.Arrays;

public class JavaApplication1 {

    public static void main(String[] args) {

        try {

            long time1 = System.currentTimeMillis();

            for (int t = 0; t < 10; t++) {
                int[] arr = new int[10000000];
                for (int i = 0; i < arr.length; i++) {
                    arr[i] = i;
                }
                Arrays.parallelSort(arr);
            }

            long time2 = System.currentTimeMillis();

            for (int t = 0; t < 10; t++) {
                int[] arr = new int[10000000];
                for (int i = 0; i < arr.length; i++) {
                    arr[i] = i;
                }
                Arrays.sort(arr);
            }

            long time3 = System.currentTimeMillis();

            System.out.print("Arrays.parallelSort(): ");
            System.out.println(time2 - time1);

            System.out.print("Arrays.sort(): ");
            System.out.println(time3 - time2);

        } catch (Exception e) {
            System.out.println(e.toString());
        }
    }
}

/*
              
run:
 
Arrays.parallelSort(): 765
Arrays.sort(): 160
     
 */

 



answered Dec 13, 2016 by avibootz

Related questions

1 answer 165 views
165 views asked Dec 13, 2016 by avibootz
2 answers 209 views
1 answer 201 views
201 views asked Dec 17, 2016 by avibootz
1 answer 222 views
222 views asked Dec 25, 2016 by avibootz
...