User:J.smith/pseudocode

From Wikipedia, the free encyclopedia

int     TotalPages
pointer DiffList[TotalPages, 3]                 // List of [oldID][Date][User] for page in question
int     PagesLeft = TotalPages-1                // Total pages left in question
int     PageNumberToCheck = PagesLeft/2         // Pointer to where we are at in the list, initialized to middle
pointer PageToCheck                             // The page that needs to be checked
bool    IsFound                                 // TRUE/FALSE return for if LastPageChecked had string
string  SearchString                            // String of text we are searching for
bool    CheckPage(page, string)                 // Checks page for string and return boolean true if found (uses Qurey.php to grab wikimarkup and does a search/find for the string (to be writen))


        While (PagesLeft > 1){                               // If PagesLeft is more than 1, then keep searching.

                PageToCheck = DiffList[PageNumberToCheck, 0]
                IsFound = CheckPage(PageToCheck, SearchString)
                PagesLeft = PagesLeft/2

                If (IsFound = TRUE)                     //If "checkpage" resulted in a "positive"
                        PageNumberToCheck = PageNumberToCheck - (PagesLeft/2)

                Else                                    //If "checkpage" resulted in a "negative"
                        PageNumberToCheck = PageNumberToCheck + (PagesLeft/2)
        }
        PageToCheck = DiffList[PageNumberToCheck, 0]
        IsFound = CheckPage(PageToCheck, SearchString)
        If (IsFound = TRUE)
                Return (PageNumberToCheck)
        Else
                Return (PageNumberToCheck+1)