Read about good book for data structures and algorithms, The latest news, videos, and discussion topics about good book for data structures and algorithms from alibabacloud.com
First, the program design1. Design function System--data table design, data table creation statement, connection database way, coding abilityIi. basic knowledge of the framework1. The basic principle of MVC framework-principle, common frame, working principle of single entry, understanding of template engine2, the characteristics of the common framework--php framework differences and advantages and disadvan
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
judge the case as false. if the match is not modified after the child match ends, it indicates that the match is a full match.
The above two methods all use subloops. can we change them to a loop body?
In fact, we can see that the primary string will only increase by 1 each time, and the child string will be matched from the beginning each time. so we can change it to a while to control the subscript pointer.
Optimization algorithm (2)
Function BF_Optimize_2 (sourceStr, searchStr) {var I = 0,
. Ah ah ah ah oh ah ah ah oh ah ah ahThis is not written until 00:00 November 23, 2015.However, in order to maintain the style of unification, or to add a few think well-written blogReport:http://arsenal591.blog.163.com/blog/static/253901269201510169448656Http://www.cnblogs.com/ocNflag/p/4967695.htmlHttp://blog.sina.com.cn/s/blog_1495db3970102w4wl.htmlHttp://www.cnblogs.com/fighter-MaZijun/p/4979318.htmlHttp://www.cnblogs.com/lqf-96/p/lowest-common-ancestor-of-a-binary-tree.htmlRe-attached://The
Linked List of data structures and algorithms
Classification of linked lists:
(1) single-chain table
Header insertion: you only need to maintain one header node, which is often used to simulate the stack;
Tail insertion: You need to maintain the head and end nodes, which are often used to simulate queues.
(2) Two-way linked list
Bidirectional traversal can be use
Array of data structures and algorithms
The basic concept of array: array is the simplest and most commonly used data structure, but there are also some considerations:
(1) array allocation method and storage location;
(2) initialization;
(3) Advanced definition of arrays in different languages;
(4) multi-dimensional a
The algorithm and data structure, from the very beginning, the realization of dynamic array is first seen.Array.h#include Main.cpp#include "Array.h" int main () {Array arr1 (2); Arr1.printarray (); arr1. InsertAt (1, 1); Arr1.printarray (); arr1. Deleteat (1); Array arr2 (ARR1); Arr2.printarray (); arr1. SetAt (1, 1); Array ARR3 = Arr1;arr3.printarray (); Arr3. Pushback (2); cout Output resultsCome on, that's it.Fundamentals of
the queue, and therefore also called a two-way queue. Write a test program to test the class.Bidirectional Queue class function Deque () {this.datastore = []; This.enqueuefront = Enqueuefront; This.enqueueback = Enqueueback; This.dequeuefront = Dequeuefront; This.dequeueback = Dequeueback; This.front = Front; This.back = back; this.tostring = toString; This.empty = Empty;} Queue-Team first function Enqueuefront (element) {This.dataStore.unshift (element);} Out team-team fir
[low], pivot)) Low++; R[high]= R[low];//move elements that are larger than pivot to the high end} R[low]= pivot;//Set Pivot returnLow//return pivot element position}"Efficiency analysis"Space efficiency: Not sure, worst case is n.Time efficiency: Assuming that the number of elements to be sorted n, then a total of n-1 order, the sub-sequence of j elements to make a trip to the bubble sort needs to be j-1 sub-keyword comparison, bubble sorting time complexity of 0 (n log n).C. Algorithm ex
first 1frequency = [0 forIinchRange (0, 10, 1)] I= 1#do factorial operations, from 1! , 2! , 3! , until 100! The Operation forNinchRange (1, 100, 1): I= n *i m=First_number (i) frequency[m]= Frequency[m] + 1PrintFrequencyResults:/users/liudaoqiang/pycharmprojects/numpy/venv/bin/python/users/liudaoqiang/project/python_project/bat_day17/ 7, 7, 7, 3, ten, 4]process finished with exit code 03. Ben Ford's Law:In life, the probability of the first digit being 1 is nearly 1/3, which is 3 times ti
This is my own written Fibonacci search algorithm, and other ideas on the web slightly different, special posted out:1) There is no pre-stored Fibonacci array, the entire length of the search data can be changed;2) The change of the mid index is dynamic, according to Fibonacci's fallback method;#include #include #define INF 32767#define SIZE 92int Feibinaci (int str[],int n,int key){int F0 = 1;int F1 = 1;int temp;int mid;while (F1 {temp = F1;F1 = F1 +
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
Linear table Lookup algorithmSequential LookupBinary lookup (linear table must be already sorted)1 /**binary Find2 * @paramobj3 * @paramvalue4 */5 Public Static voidHalfsort (int[] obj,intvalue) {6 intLen=obj.length;//gets the length of the array7 intMin=0;8 intMax=len-2;9 while(minmax) {Ten intMiddle= (Min+max)/2;//gets the subscript for the middle element of an array One if(obj[middle]==value) { ASystem.out.printl
1#include 2#include 3 voidSelectsort (int*a,intn);//pre-declaring the function to be called4 intMainvoid)5 {6 intK;7 intx[Ten]={2,4,6,8,0,1,3,5,7,9};8 for(k=0;kTen; k++)9printf"%d", X[k]);Tenprintf"\ n"); OneSelectsort (x,Ten); A for(k=0;kTen; k++) -printf"%d", X[k]); -printf"\ n"); theSystem"Pause"); - - return 0; - } + - voidSelectsort (int*a,intN//array elements are pointers, number of arrays + { A intI,j,t;//integer variable at intMin//minimum value, inde
; 1){ - if(Peoples[index]) { incount++; - if(Count = = 3){ toPeoples[index] =false; +Count=0; -leftcount--;//minus 1 for the rest of the population. the } * } $ Panax Notoginseng //put the element under the label -index++; the + //If you have counted to the end of the array, start the number A if(Index > Len-1){ theindex = 0; + } - } $ $ for(i
1 classTrietree ():2 def __init__(self):3Self.root = {}4 5 defAddNode (SELF,STR):6 #each node (root node) in the tree that contains the number of words to that node, and the key that appears after the node.7Nowdict =Self.root8 forIinchRange (len (str)):9 ifStr[i] not inchNowdict:#discover new ways to combineTenNowdict[str[i]] = {'Count'70A'prefix': str[:i+1]} OneNowdict = Nowdict[str[i]]#move to the next node. Anowdict['Count'] + = 1 - - defCount
Quick sort:/** Quick Sort*/public class QuickSort {/*** Divide arrays*/public static int partition (long arr[],int left, int. Right,long point) {int leftptr = left-1;int rightptr = right;while (true) {Loop, will be smaller than the keyword left in the left sidewhile (Leftptr Loop, will be larger than the keyword left on the right sidewhile (Rightptr > Leftptr arr[--rightptr] > point);if (leftptr >= rightptr) {Break} else {Long tmp = arr[leftptr];ARR[LEFTPTR] = arr[rightptr];ARR[RIGHTPTR] = tmp;
Data structures and algorithms (C # implementation) series --- generalized tree (II)
Heavenkiller (original)
Public override object key {get {return this. Key ;}}
Public override uint degree {get {return this. degree ;}}
// Public override uint height {get {return this. Height ;}}
Public override bool isempty () // property takes the place of isempty
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.