Example #1
0
 def test_rand1(self):
     randints = []
     for _ in range(1000):
         randints.append(randint(1, 9999))
     a = randints.copy()
     num_cmps = 0
     qsort(a, 0, len(a) - 1, num_cmps)
     randints.sort()
     self.assertEqual(a, randints)
Example #2
0
 def test_txt(self):
     a = []
     with open('QuickSort.txt') as file:
         a = [int(x) for x in file]
     exp_arr = a.copy()
     exp_arr.sort()
     num_cmps = 0
     qsort(a, 0, len(a) - 1, num_cmps)
     self.assertEqual(a, exp_arr)
Example #3
0
def generateGameResult():
    # player 1 always win, player 1 is the lowest-valued ID defined below
    global myGameConf
    numToPlayerID = {}
    convertedNum = []
    for pid in myGameConf.gamePlyrs:
        convertedNum += [sum([ord(i) for i in str(pid)])]
        numToPlayerID[convertedNum[-1]] = pid
    qsort.qsort(convertedNum)
    winner = numToPlayerID[convertedNum[0]]

    thisResList = plyrResList([plyrRes(playerID, 1) if playerID == winner else plyrRes(playerID, 0) for playerID in myGameConf.gamePlyrs])
    return thisResList
Example #4
0
 def test_qsort(self):
     for i in range(30):
         list_wait_to_sort = [
             random.randint(-1000, 1000) for i in range(100)
         ]
         self.failUnless(
             sorted(list_wait_to_sort) == qsort(list_wait_to_sort))
def main():
    # Read each test case
    line = sys.stdin.readline()
    items = line.strip().split()
    #  print(items)

    orig = list(items)
    #  print(orig)

    #print(items)
    result = qsort(items)
    if items != sorted(orig):
        print("The list is not sorted.")
    else:
        print(result)
def main():
    algorithms = {
        'sorted': sorted,
        'np_quicksort': lambda a: np.sort(a, kind='quicksort'),
        'np_mergesort': lambda a: np.sort(a, kind='mergesort'),
        'np_insertionsort': lambda a: insertion_sort(a),
        'np_selectionsort': lambda a: selection_sort(a),
        'np_qsort': lambda a: qsort(a)
    }

    sizes = list(range(1, 50, 5)) + list(range(200, 1000, 50))
    avg_time = {alg: [] for alg in algorithms}
    for sz in tqdm(sizes):
        for alg_name, f in algorithms.items():
            avg_time[alg_name].append(measure_search_time(f, sz, 20))

    for alg_name in algorithms:
        plt.plot(sizes, avg_time[alg_name], label=alg_name)
    plt.legend()
    plt.ylim(0.1)
    plt.show()
Example #7
0
File: bench.py Project: lbolla/junk
def main():
    ls = [100 * n for n in xrange(50)]
    algo = [
            ('insertionsort', insertion_sort, True),
            ('heapsort', heapsort, False),
            ('mergesort', mergesort, False),
            ('qsort', lambda v: qsort(v, 0, len(v) - 1), True),
            ('counting_sort', csort, False),
            ('radix_sort', radix_sort, False),
            ('bucket_sort', bucket_sort, False),
            ]

    res = {}
    for algo_name, algo_f, in_place in algo:
        print algo_name
        res[algo_name] = []
        for l in ls:
            print l
            v = [random.randint(0, 100) for _ in xrange(l)]
            nrep = 3
            tot = []
            for _ in xrange(nrep):
                if in_place:
                    w = v[:]
                    t1 = time.time()
                    algo_f(w)
                    t2 = time.time()
                else:
                    t1 = time.time()
                    w = algo_f(v)
                    t2 = time.time()
                assert w == sorted(v), "%s, %s" % (w, sorted(v))
                tot.append(t2 - t1)
            res[algo_name].append((l, min(tot)))

    # references
    res['n'] = [(l, l) for l in ls]
    res['n_log_n'] = [(l, l * log(l + .1)) for l in ls]
    res['n2'] = [(l, l * l) for l in ls]
    return res
Example #8
0
 def testQSortNormalList(self):
     A = [3, 5, 7, 1, 3, 6, 7]
     qsort.qsort(A)
     self.assertEqual(A, [1, 3, 3, 5, 6, 7, 7])
Example #9
0
 def testQSortEmptyList(self):
     A = []
     qsort.qsort(A)
     self.assertEqual(A, [])
Example #10
0
def sort(numbers):
    #numbers.sort()
    qs.qsort(numbers)
Example #11
0
 def testQSortEmptyList(self):
     A = []
     qsort.qsort(A)
     self.assertEqual(A, [])
Example #12
0
#!/usr/bin/python3

import random
import qsort

A = [random.randrange(0, 10) for i in range(10)]
qsort.qsort(A)
print(A)

B = [{'value': random.randrange(0,10)} for i in range(10)]
qsort.qsort(B, key=lambda x: -x['value'])
print(B)
Example #13
0
 def test_2_elems(self):
     self.assertEquals([3, 5], qsort([5, 3]))
Example #14
0
 def test_qsort(self):
     self.assertEqual([-90, 2, 3, 4, 10], qsort(lambda x, y: x < y, [2, 4, -90, 3, 10])) 
     self.assertEqual([10, 4, 3, 2, -90], qsort(lambda x, y: x > y, [2, 4, -90, 3, 10])) 
Example #15
0
 def test_qsort(self):
     self.assertEqual([-90, 2, 3, 4, 10],
                      qsort(lambda x, y: x < y, [2, 4, -90, 3, 10]))
     self.assertEqual([10, 4, 3, 2, -90],
                      qsort(lambda x, y: x > y, [2, 4, -90, 3, 10]))
Example #16
0
 def test_slencmp(self):
      self.assertEqual(['int', 'long', 'short', 'double'], qsort(slencmp, ["short", "double", "int", "long"]))
Example #17
0
 def test_1_elem(self):
     self.assertEquals([5], qsort([5]))
Example #18
0
 def test_empty(self):
     self.assertEquals([], qsort([]))
Example #19
0
 def test_many_elems(self):
     self.assertEquals([1, 2, 3, 3, 5, 9], qsort([5, 3, 9, 3, 2, 1]))
Example #20
0
 def test_slencmp(self):
     self.assertEqual(['int', 'long', 'short', 'double'],
                      qsort(slencmp, ["short", "double", "int", "long"]))
Example #21
0
def insitu():
    perm = list(range(len(obj)))
    qsort(perm, key=lambda i: obj[i])
    rearrange(obj, perm)
Example #22
0
def check():
    arr = gen_arr(50, 10)
    qsort.qsort(arr)
    return _checkfun(arr)
Example #23
0
 def test_qsort1(self):
     a = [3, 8, 2, 5, 1, 4, 7, 6]
     num_cmps = 0
     qsort(a, 0, len(a) - 1, num_cmps)
     self.assertEqual([1, 2, 3, 4, 5, 6, 7, 8], a)
Example #24
0
def normal():
    qsort(obj)
Example #25
0
#!/usr/bin/python3

import random
import qsort

A = [random.randrange(0, 10) for i in range(10)]
qsort.qsort(A)
print(A)

B = [{'value': random.randrange(0, 10)} for i in range(10)]
qsort.qsort(B, key=lambda x: -x['value'])
print(B)
Example #26
0
            free(v);
        }
    }
    Py_INCREF(Py_None);
    return Py_None;
}

static PyMethodDef qsortMethods[] = {
    { "qsort", pyqsort, METH_VARARGS },
    { NULL, NULL }
};

__declspec(dllexport) void initqsort(void) {
    PyObject *m;
    m = Py_InitModule("qsort", qsortMethods);
}


In Python
ActivePython 2.1, build 210 ActiveState)
based on Python 2.1 (#15, Apr 23 2001, 18:00:35) [MSC 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import qsort
>>> a = [9, 3, 5, 4, 1]
>>> def revcmp(a, b): return cmp(b, a)
...
>>> qsort.qsort(a, revcmp)
>>> a
[9, 5, 4, 3, 1]
>>>
from stack import Stack

# search
sorted_data = [
    2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71,
    73, 79, 83, 89, 97
]
print(binary_search(sorted_data, 37, 0, 24))

# sorting
unsorted_data = [
    13, 17, 19, 23, 29, 59, 61, 67, 71, 2, 3, 5, 7, 11, 31, 37, 41, 43, 47, 53,
    73, 79, 83, 89, 97
]
print(selection_sort(unsorted_data))
print(qsort(unsorted_data))

# Stack
s = Stack()
print(s)
s.push(42)
print(s)
s.pop()
print(s)

# HashTable
h = HashTable()
print(h)
h.set('name', 'Jesus')
print(h)
print(h.get('name'))
Example #28
0
        temp = self.A[r + 1]
        self.A[r + 1] = x
        self.A[q] = temp
        return r + 1

    def subFind(self, i, p, q):
        if p < q:
            r = self.partition(p, q)
            if i + p == r + 1:
                return self.A[r]
            elif i + p < r + 1:
                return self.subFind(i, p, r - 1)
            else:
                return self.subFind(i - (r - p) - 1, r + 1, q)
        if p == q:
            return self.A[p]

    def find(self, i):
        if i < 1 or i > len(A):
            return "invalid parameter"
        return self.subFind(i, 0, len(self.A) - 1)


if __name__ == "__main__":
    A = list((2, 3, 9, 4, 10, 4))
    fd = findithminmal(A)
    qa = qsort(A)
    print(fd.find(7))
    print(qa.sort())
Example #29
0
File: test.py Project: bazerk/katas
 def test_Basics(self):
     self.assertEqual(qsort([1, 2, 3]), [1, 2, 3])
     self.assertEqual(qsort([3, 2, 1]), [1, 2, 3])
     self.assertEqual(qsort([1]), [1])
     self.assertEqual(qsort([2, 1]), [1, 2])
     self.assertEqual(qsort([2, 1, 6, 7, 7, 2, 8, 1, 99, 4, 9, 16]), [1, 1, 2, 2, 4, 6, 7, 7, 8, 9, 16, 99])
Example #30
0
 def testQSortNormalList(self):
     A = [3,5,7,1,3,6,7]
     qsort.qsort(A)
     self.assertEqual(A, [1,3,3,5,6,7,7])
Example #31
0
def do_qsort():
    arr = read_array(args.input)

    qsort(arr, 0, len(arr) - 1)

    print_array(args.output, arr)