Recommend a Visual Web site "Visual Algo": Url= ' https://visualgo.net/en/sorting 'This website gives the principles and processes of various sorting algorithms, which are visualized through dynamic forms. The related pseudo-code are also given, as well as the specific steps to execute to code."Bubble Sort"You need to repeatedly visit the sequence of columns that need to be sorted. The size of the adjacent two items is compared during the visit, and if the order is not correct, two items are exc
= mid#determine the starting subscript for the post-half string - Else: -Next = mid + 1 the -top = Mid-1 - forIinchRange (Next,len (A)): - ifStack[top]! =A[i]: + returnFalse -Top-= 1 + A returnTrueTest:if __name__= ="__main__" := List ("Hahahahahahahahaha ") print is_plalindrome_demo1 (q)Manual implementation Stack1 #simple filo stack category2 classStack:3 def __init__(self):4Self.top = None#point to top of stack5Self.end = None#Point to the bo
does not support the comparison size.-priority the priority counter, ensuring that the smallest element function in the queue (the most important) is always placed in _queue[0]. heapq.heappush()and the first element is heapq.heappop() inserted and deleted separately on the queue, the _queue first element of the _queue is always the smallest, ensuring that the queue _queue the first element with the highest priority.Reference: "Python Cookbook" 3rd Ed
in a dictionaryThe Dict () constructor can create a dictionary directly from the key-value pairDict ([' Tim ', 123), (' Tiny ', 234)]) >>>{' Tiny ': 234, ' Tim ': 123}Derivation creates a dictionary:{d2:d2+ ' @main. com ' for D2 in List (D.keys ()}}>>>{' Jack ': ' [email protected] ', ' Tom ': ' [email protected] '}Exercise: A key-value pair in a circular output dictionary:For Name,email in D.items ():Print (Name,email)4. CollectionEmpty collection: A = set () ※ to create an empty collection, y
', ' Y ': ' 2 '}, {' X ': ' 3 ', ' Y ': ' 3 '}, {' X ': ' 4 ', ' Y ': ' 4 '}]One-to-one lambda expressions>>> p = [{' X ': ' 3 ', ' Y ': ' 3 '},{' x ': ' 4 ', ' Y ': ' 4 '},{' x ': ' 2 ', ' Y ': ' 2 '},{' x ': ' 1 ', ' y ': ' 1 '}]>>> plamb = [n[' x '] > ' 2 ' for n in P]>>> Print (PLAMB)[True, True, False, false]The compress is used in conjunction with 11 items.>>> from Itertools Import compress>>> list (compress (P,PLAMB))[{' X ': ' 3 ', ' Y ': ' 3 '}, {' X ': ' 4 ', ' Y ': ' 4 '}]13. Logical
1 Sequence decompression: through * to pass the match*a, B = somelist, First, *mid, last = Somelist, a, *b = Somelist2 using bidirectional queues: From collections import dequeQ = deque (maxlen=5) can be fixed lengthQ = deque () can also be any lengthcan be inserted and removed from both ends, append, Appendleft, pop, popleft3 finding the largest or smallest n elements: using heapq (heap queue)HEAPQ. nlargest (N, Alist) heapq. nsmallest (n, alist) is suitable when n is relatively smallYou can al
, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)] For a more advanced application, consider the following 3x4 matrix consisting of three 4-length lists:1 >>> matrix = [2 ... [1, 2, 3, 4], 3 ... [5, 6, 7, 8], 4 ... [9, ten, one, one], 5 ...]The following list resolution allows you to transpose the matrix:1 >>> [[Row[i] for in matrix] for in Range (4)] 2 [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]It is parsed from the outermost layer, that is, the function of the above code
Bucket sortBarrel sequencing has been used since the 1956, and the basic idea of the algorithm is proposed by E.J.ISSAC and R.c.singleton.This algorithm is like having 11 barrels, numbered from 0~10. Each occurrence of a number, in the corresponding number of buckets put aA little flag, and then just count the few small flags in each bucket OK. For example, there are 1 small flags in bucket 2nd, indicating2 appeared once, and in the 3rd barrels there were 1 small flags, indicating that 3 appeare
pairDict ([' Tim ', 123), (' Tiny ', 234)]) >>>{' Tiny ': 234, ' Tim ': 123}Derivation creates a dictionary:{d2:d2+ ' @main. com ' for D2 in List (D.keys ()}}>>>{' Jack ': ' [email protected] ', ' Tom ': ' [email protected] '}Exercise: A key-value pair in a circular output dictionary:For Name,email in D.items ():Print (Name,email)4. CollectionEmpty collection: A = set () ※ to create an empty collection, you must use Set ()Demonstrate:Basket = {' Apple ', ' orange ', ' apple '} >>>{' orange ', '
the x in parentheses to a floating-point type;Complex (x) converts the x in parentheses into a complex number;For example:---------------Convert 666 of string types to integer----------------------->>>Print(Type (int ("666")))class 'int'>---------------Convert 666 of string types to floating-point--------------------->>>Print(Type (float ("666")))class 'float'>>>>Print(Float ("666"))666.0--------------Convert 666 of string types to plural------------------------>>>Print(Complex ("666"))(666+0J)
algorithm is executed on different computers, and the execution time is not the same.Therefore, the operational efficiency should be related to the execution steps, which will be the time complexity of the execution steps.In the first algorithm: T (n) = n^3 * 2In the second algorithm: T (n) = n^2 * 3If the system and bias items are not considered, then the progressive function, using the progressive function representation, is the large O notation:In the first algorithm: T (n) = O (n^3)In the s
StackStack, which is called a stack, is a container that can be stored in data elements, access elements, delete elements, and it is characterized only by allowing the addition of data (English: Push) and output data (English: Pop) to one end of the container (called the stack Top indicator, English: top). Without a location concept, it is guaranteed that any ele
. 3Update: The parameter is key and value, regardless of whether the key exists, it becomes the form of Key:value. Delete (not used in work) fruits{'a':'appleupdate','b':'Banana','g':'Grape','o':'Orange','Martin': -,3:5}fruits.pop (3)5fruits{'a':'appleupdate','b':'Banana','g':'Grape','o':'Orange','Martin': -} change:1, Assignment2, updatea{2:9,3:5,4:9}a[0] =8a{2:9,3:5,4:9,0:8}a[2] =8a{2:8,3:5,4:9,0:8}a.update ({3:Ten}) a{2:8,3:Ten,4:9,0:8} check a{2:8,3:Ten,4:9,0:8}a.get (2)8a[0]8two different v
There are three built-in data structures in Python-lists, tuple tuples, and dictionary DictItems in the list are included in square brackets , and items are separated by commasTuples and lists are very similar, except that tuples and strings are immutable , meaning that you cannot modify tuples. Tuples are defined by a comma-separated list of items in parentheses
Optimal time complexity: O (n) (in ascending order, sequence already in ascending state)
Worst time complexity: O (n2)
Stability: Stable
Code:"" "Insert sort Time complexity: O (n*n) Stability: Stable" "" "" Import randomimport timedef Insert_sort (list): n = len (list) # from the second position start inserting subscript 1 for J in Range (1,n): # Start comparison from the first J element if it is less than the previous element, the interchange position for
1. Select the principle of sorting2. Code implementationdefSelection_sort (alist): N=Len (alist)#requires a n-1 selection operation forIinchRange (n-1): #Record minimum positionMin_index =I#Select the minimum data from the i+1 position to the end forJinchRange (i+1, N):ifALIST[J] Alist[min_index]: Min_index=J#If the selected data is not in the correct location, swap ifMin_index! =I
, intersection, and difference operations. So, if you want to perform some normal collection operations on the keys of the collection, you can use the key view objects directly without first converting them to a set.The dictionary's items () method returns an element view object that contains (key, value) pairs. This object also supports collection operations and can be used to find out which two dictionaries have the same key-value pairs.Although the values () method of the dictionary is simila
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.