Worst case scenario: the time complexity represented by the large O notation gives the worst case scenario of an algorithm--for any input of size n, the algorithm runs no more than O (f (n))
Best case: Large ω notation--if there is a positive constant C and a function g (n), for any n>>2, there is t (n) > C * g (n), that is: after N is large enough, g (n) gives a lower bound of t (N), recorded as:
intMain () {intdis[Ten],i,k,m,n,s=1, u[Ten],v[Ten],w[Ten],m,flag; intINF =99999999; scanf ("%d%d",n,m); M=m; for(i=1; i) {scanf ("%d%d%d", u[i],v[i],w[i]);//input each edge and weight value } for(i=1; i) {Dis[i]= INF;//Initialize to positive infinity} dis[1] =0;//use 1 as the source point for(k=1; k1; k++)//a total of n vertices, cycle n-1 times can{m= M;//the re-assigned m is the number of bars in the array where the edges are storeds =1; flag =0; for(i=1; i//slack on all current
I have learned data structures, and I have also learnedAlgorithmThe time complexity. I don't know if the time complexity will be pushed down in the current year, that is, probably to obtain the highest order of magnitude based on the number of basic statement executions.
For example
I = 0;
While (I
I = 0;
J = 0;
Remember that the number of elements in the data structure is nListing (list)The list is implemented by the array, and the allocated memory is a contiguous space. Adjust and modify the list elements to return the length of the list, the time complexity of these operations is O (1). The operation time in the head of the list is relatively high, O (n).For example,
1. Time complexity (large o notation):O (1) O (logn) O (2n) O (n!) O (NN) (1) Time complexity of commonly used data structures in Python:The time complexity of the list built-in operations: Dict
MinStakc.cpp#include This article is from the "Molova" blog, make sure to keep this source http://molova.blog.51cto.com/10594266/1711380C + +: Implement a stack that includes a stack, a stack function, and a return minimum, requiring a time complexity of O (1)
requires more memory space than the heap, because it requires an extra array.3. Heap sequencing (heapsort)Heap sequencing is suitable for situations where data volumes are very large (millions of data).Heap ordering does not require a large number of recursive or multidimensional staging arrays. This is appropriate for a very large sequence of data volumes. For example, more than millions of records, because the fast sort, the merge sort all uses the recursive design algorithm, when the data vo
Ideas:In the process of merging and sorting, one step is to remove the small element from the left and right two arrays in the tmp[] array.The array on the right is actually the element on the right side of the original array. When you take the element to the right without taking the element to the left, the remaining elements on the left side are larger than the first element on the right, i.e. they can form an inverse pair. Assuming that there are now n elements left on the right, the inverse
1 struct ListNode {2 int Val; 3 ListNode *Next; 4 ListNode (int x): Val (x), Next (NULL) {}5 };1 /*Delete a node in a list with O (1)2 * input:plisthead-the Head of List3 * ptobedeleted-the node to be deleted4 */5 6 structListNode7 {8 intM_nkey;9listnode*M_pnext;Ten }; One A voidDeletenode (ListNode *plisthead, ListNode *ptobedeleted) - { - if(!plisthead | |!ptobedeleted) the return; - - if(Ptobedeleted->m_pnext! =NULL) { -ListNode *pnext = ptobedeleted->
Character string Movement (if the character string is a combination of * and 26 letters, move * to the leftmost, move the letters to the rightmost, and keep the relative order unchanged ), minimum Time and space complexity
If there is no requirement to ensure that the relative sequence of letters remains unchanged, it is the easiest to move the exchange element to the center using two double-ended pointer
The Fibonacci series can be derived from many applications. We know that the time complexity of the Fibonacci series is exponential. Now let's roughly prove it:
Fibonacci SeriesRecurrence:
F (n) = f (n-1) + f (n-2)
F (1) = F (2) = 1
It is roughly proved that decision_tree can be used. For more intuitive purposes, I reference another constant function f (x) = 0; X = 1, 2, 4, 5 ,............
SoFibonacci
It is just a demonstration implementation, regardless of whether the data structure used by the stack is vector or other containers.
The Code is as follows:
# Include
Stack with O (1) time complexity and min and Max Functions
idea: Sort by merge. A list is recursively divided into two halves until each part is ordered and then merged. is actually two steps, first decomposition, and then merge the ordered list. Code://recursive ordering of linked listsclassSolution { Public: ListNode* Sortlist (listnode*head) { if(head==null| | head->next==NULL)returnHead; returnMergeSort (head); } ListNode* MergeSort (listnode*head) { //recursive termination conditions if(head==null| | head->next==NULL)returnHead
Title Description:There are two sorted arrays A1 and A2, there is enough free space at the end of A1 to accommodate A2, implement a function that inserts all the numbers in A2 into the A1 and all the numbers are ordered.#include using namespace STD;voidMerge (intA1[],intNintA2[],intm) {inti = n1;intp = n+m-1;intj = m1; while(P>i) {if(i>=0a1[i]>a2[j]) {a1[p] = A1[i]; p--; i--; }Else{A1[P]=A2[J]; j--; p--; } }}intMain () {inta1[]={ One, -, the, -, +,0,0,0,0,0
This blog post non-blogger original, the department through the degree of Niang collection and collation, if there is similar, please contact Bo Master, Chase Plus reprint source. At the same time Bo Master level and understanding is limited, if there is any deviation please the general Bo friends designated.Learn to communicate qq:792911374Complexity of TimeThe same problem can be solved by different algorithms, and the quality of an algorithm will a
The K-largest number in the array can be obtained based on the fast sorting method. The steps are as follows:
1. Randomly select a fulcrum
2. Place the number greater than the pivot point to the left of the array. Place the number smaller than the pivot point to the right of the array. Place the pivot point to the center (left)
3. Set the length of the left part to L,
When K
When K> L, find the number (k-l) in the part recursively
When K = L, returns the Split points (that is, the fulcrum of th
Today in the brush algorithm unexpected discovery sorting algorithm by binary search improvement can get log2 (n!) of time complexity.Let's look at a graph of the complexity of each time.This is a graphic drawn using Desmos. The main comparisons are xlog (x), x^2, log (x!), log (x), and x graphics. and a bigger picture.Compare log (x!) with graphs Lower than Xlog (x) is higher than x, but usually our sortin
The time complexity of the comparison sorting algorithm is the proof of O (NLOGN):The comparison of the sorting algorithm is 22, so it can be abstracted into a binary tree , the comparison of the number is left and right leaf nodes, the results of the comparison are stored in the parent node, and so on. The time complexity
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.