public static double algorithmList(List<String> wordlist, int times_file, String searchterm, int snippetlength) throws IOException{
        /*
         *
         */
        Stopwatch timer = new Stopwatch();
        for(int i = 0; i < times_file; i++){
            BufferedReader br = new BufferedReader(new FileReader(FILENAME));
            String line = null;
            while ((line = br.readLine()) != null) {
                for (String word : line.split("[-!~\\s]+")) {
                    wordlist.add(word);
                }
            }
        }
        //double time = timer.elapsedTime();
        //System.out.print(">>>> " + wordlist.getClass().getName());
        //System.out.printf(" : [Words processed:  %d |Time elapsed:  %.3f ]\n",wordlist.size(),time);

        /*
         * N
         */

        int position = 0;
        int results =0;
        //Stopwatch timer2 = new Stopwatch();
        for(String word : wordlist) {
            if (word.equals(searchterm)) {
                StringBuilder temp = new StringBuilder();
                for (int i = (position - snippetlength); i < (position + snippetlength + 1); i++) {
                    temp.append(wordlist.get(i)); //[http://programcreek.com/2013/03/arraylist-vs-linkedlist-vs-vector/]
                    temp.append(" ");
                }
                //System.out.println(">> "+ temp);
                results++;
            }
            position++;
        }
        //double time2 = timer2.elapsedTime();
        return timer.elapsedTime();
        //System.out.printf(">> algorithm finished: [Results found: %d |Time elapsed: %.3f]\n\n",results,time2);
    }