How to sort an array in a single loop?

后端 未结 22 2954
面向向阳花
面向向阳花 2020-12-19 09:14

So I was going through different sorting algorithms. But almost all the sorting algorithms require 2 loops to sort the array. The time complexity of Bubble sort & Insert

22条回答
  •  醉酒成梦
    2020-12-19 09:33

    Here, a single-loop Bubble Sort in Python:

    def bubbly_sortish(data):
        for _ in xrange(len(data)**2):
            i, j = _/len(data), _%len(data)
            if i data[j]:
                data[i], data[j] = data[j], data[i]
    
    A = [5, 1, 2, 3, 5, 6, 10]
    bubbly_sortish(A)
    
    print A            
    

    Of course this is a joke. But this shows the number of loops has little to do with algorithm complexity.

    Now, if you're asking if it is possible to sort an array with O(n) comparisons, no, it's not possible. The lower bound is Ω(n log n) for comparison-based sorting algorithms.

提交回复
热议问题