
RapidKode: Machen Sie es beim ersten Mal richtig
RapidKode ist ein Python -Paket, das schnelle, flexible und ausdrucksstarke Datenstrukturen bietet, Alogorithmen, die so konzipiert sind, dass sie mit wettbewerbsfähiger Programmierung und Codierung einfach und intuitiv gestaltet werden. Ziel ist es, der grundlegende hochrangige Baustein für die Wettbewerbsprogrammierung in Python zu sein. Mit Rapidkode können Sie in kürzerer Zeit komplexe Algorithmen durchführen. Alle Algorithmen sind auf ihre beste optimiert, um die Zeitkomplexität zu verkürzen, um Sie in der Leader-Board hervorzuheben. Es gibt nicht mehr Zeit damit, riesige Codeschögen zu schreiben und sie später zu debuggen. Das Ziel von Rapidkode ist es, Anfängern zu helfen, mit dem Wettbewerbsprogramm zu beginnen und die Bedeutung von Zeit und Raum zu verstehen. Das Motto der Herstellung von Rapidkode besteht darin, es zum ersten Mal richtig zu machen, anstatt 10 Minuten mit kostbaren Minuten für Util -Funktionen zu verbringen.
Installation:
oder
Für Probleme, Fehlerberichte und Beiträge besuchen Sie das Entwicklungsrepo -> hier klicken
Verfügbare Funktionen:
Zahlenfunktionen:
| Syntax | Betrieb |
|---|
| numbers.gen_sparsenum_upto (x) | erzeugt eine spärliche Zahl bis zum angegebenen Bereich |
| nummern.get_sparsenum_after (n) | Gibt die spärliche Nummer für die angegebene Nummer zurück |
| nummern.Checkprime (x) | Gibt true zurück, wenn die Zahl Prime ist |
| number.getPrimes.generate (x) | Gibt die ersten x Primzahlen zurück |
| nummern.getPrimes.upto (x) | Gibt Primzahlen bis zu einem bestimmten Bereich zurück |
| nummern.getPrimes.inrange (x, y) | Gibt Primzahlen im angegebenen Bereich zurück |
| nummern.fib.getElement (x) | Gibt die X'th Fibonacci -Nummer zurück |
| number.fib.generate (x) | Gibt die ersten x Fibonacci -Zahlen zurück |
Beispiel:
import rapidkode as rk
var = rk . numbers . gen_sparsenum_upto ( 100 )
print ( var )
var = rk . numbers . get_sparsenum_after ( 3289 )
print ( var )
var = rk . numbers . checkprime ( 8364 )
print ( var )
var = rk . numbers . getprimes . generate ( 100 )
print ( var )
var = rk . numbers . getprimes . inrange ( 100 , 500 )
print ( var )
var = rk . numbers . fib . getelement ( 58 )
print ( var )
var = rk . numbers . fib . generate ( 25 )
print ( var )
Ausgabe:
[0, 1, 2, 4, 5, 8, 9, 10, 16, 17, 18, 20, 21, 32, 33, 34, 36, 37, 40, 41, 42, 64, 65, 66, 68, 69, 72, 73, 74, 80, 81, 82, 84, 85, 128]
4096
False
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541]
[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499]
365435296162
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368]
Zahlensystem - Konvertierungsfunktionen:
| Syntax | Betrieb |
|---|
| konvertieren (x, 'sys'). to ('new_sys') | Konvertiert X von SYS in neue Systeme |
| Beispiel: | |
| konvertieren (9845, 'dec'). An ('bin') | Konvertiert 9845 von Dezimalzahl in binäre |
| konvertieren (3745, 'Oct'). zu ('hex') | Konvertiert 3745 von Oktal in Hexadezimal |
- Sie können durch
sys durch ['bin', 'dec', 'Oct', 'hex'] und new_sys mit ['bin', 'dec', 'Oct', 'Hex'] ersetzen, um Zahlenkonvertierungen vorzunehmen.
import rapidkode as rk
converted_num_1 = rk . convert ( 2013 , 'dec' ). to ( 'bin' )
print ( converted_num_1 )
converted_num_2 = rk . convert ( 11111011101 , 'bin' ). to ( 'hex' )
print ( converted_num_2 )
converted_num_3 = rk . convert ( '7dd' , 'hex' ). to ( 'dec' )
print ( converted_num_3 )
converted_num_4 = rk . convert ( 5634 , 'oct' ). to ( 'dec' )
print ( converted_num_4 )
converted_num_5 = rk . convert ( 2972 , 'hex' ). to ( 'oct' )
print ( converted_num_5 )
converted_num_6 = rk . convert ( 24562 , 'oct' ). to ( 'bin' )
print ( converted_num_6 )
Ausgabe:
11111011101
7dd
2013
2972
24562
10100101110010
Suchalgorithmen:
| Technik | Syntax | Betrieb | Zeitkomplexität |
|---|
| Lineare Suche | linear.search (arr, x) | Gibt die Position von x in arr zurück | An) |
| Binäre Suche | binary.search (arr, x) | Gibt die Position von x in arr zurück | O (log n) |
| Sprungsuche | Jump.Search (arr, x) | Gibt die Position von x in arr zurück | O (√ n) |
| Interpolationssuche | Interpolation.search (arr, x) | Gibt die Position von x in arr zurück | O (log2 (log2 n)) |
| Exponentielle Suche | exponential.search (arr, x) | Gibt die Position von x in arr zurück | O (log2 i) |
| Ternäre Suche | ternärisch.search (arr, x) | Gibt die Position von x in arr zurück | O (log3 n) |
Additonal können Sie verwenden:
| Funktion | Betrieb |
|---|
| .zeigen() | druckt den Code im Terminal |
| .Info() | Gibt die kurzen Informationen |
| .algo () | druckt den stufenweisen Algorithmus |
Beispiel:
import rapidkode as rk
> >> rk . binary . show ()
> >> rk . binary . info ()
> >> rk . binary . algo ()
Ausgabe:
def binarysearch ( arr , x ):
l = 0
r = len ( arr ) - 1
while l <= r :
mid = l + ( r - l ) // 2
if arr [ mid ] == x :
return mid
elif arr [ mid ] < x :
l = mid + 1
else :
r = mid - 1
return "element not found"
Binary search is the search technique that works efficiently on sorted lists
. Hence, to search an element into some list using the binary search technique, we must ensure that the list is sorted
. Binary search follows the divide and conquer approach in which the list is divided into two halves, and the item is compared with the middle element of the list
. If the match is found then, the location of the middle element is returned
. Otherwise, we search into either of the halves depending upon the result produced through the match
Algorithm
Step 1 - Read the search element from the user.
Step 2 - Find the middle element in the sorted list.
Step 3 - Compare the search element with the middle element in the sorted list.
Step 4 - If both are matched, then display "Given element is found!!!" and terminate the function.
Step 5 - If both are not matched, then check whether the search element is smaller or larger than the middle element.
Step 6 - If the search element is smaller than middle element, repeat steps 2, 3, 4 and 5 for the left sublist of the middle element.
Step 7 - If the search element is larger than middle element, repeat steps 2, 3, 4 and 5 for the right sublist of the middle element.
Step 8 - Repeat the same process until we find the search element in the list or until sublist contains only one element.
Step 9 - If that element also doesn't match with the search element, then display "Element is not found in the list!!!" and terminate the function.
Die drei Funktionen .show() , .info() , .algo() können für alle 6 Suchtechniken verwendet werden.
Sortieralgorithmen:
| Technik | Syntax | Betrieb | Zeitkomplexität |
|---|
| Auswahlsart | selection.sort (arr) | Sortiert und gibt das angegebene Array zurück | O (n^2) |
| Blasenart | bubble.sort (arr) | Sortiert und gibt das angegebene Array zurück | O (n^2) |
| Insertion -Sortierung | Insertion.sort (arr) | Sortiert und gibt das angegebene Array zurück | O (n^2) |
| Sortierung zusammenführen | merge.sort (arr) | Sortiert und gibt das angegebene Array zurück | O (n log (n)) |
| Haufensart | heap.sort (arr) | Sortiert und gibt das angegebene Array zurück | O (n log (n)) |
| Schnelle Sortierung | Quick.Sort (Start, Ende, arr) | Sortiert und gibt das angegebene Array zurück | O (n^2) |
| Zählen | count.sort (arr) | Sortiert und gibt das angegebene Array zurück | O (n+k) |
| Radix -Sortierung | radix.sort (arr) | Sortiert und gibt das angegebene Array zurück | O (NK) |
| Eimer -Sort | Bucket.Sort (arr) | Sortiert und gibt das angegebene Array zurück | O (n + k) |
| Shell -Sortierung | Shell.Sort (arr) | Sortiert und gibt das angegebene Array zurück | O (NLOG N) |
| Kammsart | Comb.Sort (arr) | Sortiert und gibt das angegebene Array zurück | O (n log n) |
| Tiere -Art | Pigeonhole.Sort (arr) | Sortiert und gibt das angegebene Array zurück | O (n + n) |
| Zyklusart | cycle.sort (arr) | Sortiert und gibt das angegebene Array zurück | O (N2) |
Additonal können Sie verwenden:
| Funktion | Betrieb |
|---|
| .zeigen() | druckt den Code im Terminal |
| .Info() | Gibt die kurzen Informationen |
| .algo () | druckt den stufenweisen Algorithmus |
Beispiel:
import rapidkode as rk
> >> rk . count . show ()
> >> rk . count . info ()
> >> rk . count . algo ()
Ausgabe:
def countsort ( arr ):
output = [ 0 for i in range ( len ( arr ))]
count = [ 0 for i in range ( 256 )]
array = [ 0 for _ in arr ]
for i in arr :
count [ i ] += 1
for i in range ( 256 ):
count [ i ] += count [ i - 1 ]
for i in range ( len ( arr )):
output [ count [ arr [ i ]] - 1 ] = arr [ i ]
count [ arr [ i ]] -= 1
for i in range ( len ( arr )):
array [ i ] = output [ i ]
return array Counting sort is a sorting algorithm that sorts the elements of an array by counting the number of occurrences of each unique element in the array
. The count is stored in an auxiliary array and the sorting is done by mapping the count as an index of the auxiliary array
. Counting sort is a sorting technique based on keys between a specific range
. It works by counting the number of objects having distinct key values (kind of hashing)
. Then doing some arithmetic to calculate the position of each object in the output sequence
Algorithm
step 1 - Find out the maximum element (let it be max) from the given array.
step 2 - Initialize an array of length max+1 with all elements 0.
This array is used for storing the count of the elements in the array.
step 3 - Store the count of each element at their respective index in count array
For example: if the count of element 3 is 2 then, 2 is stored in the 3rd position of count array.
If element "5" is not present in the array, then 0 is stored in 5th position.
step 4 - Store cumulative sum of the elements of the count array.
It helps in placing the elements into the correct index of the sorted array.
step 5 - Find the index of each element of the original array in the count array.
This gives the cumulative count. Place the element at the index calculated as shown in figure below.
step 6 - After placing each element at its correct position, decrease its count by one.
Die drei Funktionen .show() , .info() , .algo() können für alle 13 Sortiertechniken verwendet werden.
Diagrammfunktionen:
| Syntax | Betrieb |
|---|
| .buildedge (u, v) | Erstellen Sie eine Grafikkante |
| .buildmultiedge ([]) | Erstellt ein Diagramm mit gegebener Koordliste |
| .Bfs (x) | Breite die erste Suche durchführen |
| .Dfs (x) | Führt Tiefe erste Suche durch |
| .Findap () | Gibt den Artikulationspunkt der Grafik zurück |
Beispiel:
import rapidkode as rk
# make graph object with graph() class
my_graph = rk . graph ()
# adding one edge at a time
my_graph . buildedge ( 0 , 1 )
my_graph . buildedge ( 0 , 2 )
my_graph . buildedge ( 1 , 2 )
my_graph . buildedge ( 2 , 0 )
my_graph . buildedge ( 2 , 3 )
my_graph . buildedge ( 3 , 3 )
import rapidkode as rk
# make graph object with graph() class
my_graph = rk . graph ()
# adding multiple edges at once
my_graph . buildmultiedge ([ 0 , 1 , 0 , 2 , 1 , 2 , 2 , 0 , 2 , 3 , 3 , 3 ])
import rapidkode as rk
# make graph object with graph() class
my_graph = rk . graph ()
my_graph . buildmultiedge ([ 0 , 1 , 0 , 2 , 1 , 2 , 2 , 0 , 2 , 3 , 3 , 3 ])
# performing BFS from edge 2
print ( my_graph . BFS ( 2 ))
# performing DFS from edge 2
print ( my_graph . DFS ( 2 ))
# finding the Articulation Point
print ( my_graph . findAP ())
Ausgabe:
['-->', 2, '-->', 0, '-->', 3, '-->', 1]
['-->', 2, '-->', 0, '-->', 1, '-->', 3]
2
Musterfunktionen:
Die folgende Funktion verwendet den Rabin-Karp-Algorithmus, der ein Algorithmus ist, der zum Suchen/Übereinstimmungsmuster im Text mit einer Hash-Funktion verwendet wird. Im Gegensatz zum naiven String -Matching -Algorithmus fließt nicht jedes Zeichen in der Anfangsphase durch, sondern filtert die Zeichen, die nicht übereinstimmen, und führt dann den Vergleich durch.
| Syntax | Betrieb |
|---|
| Muster.Ishere (a) .inn (b) | Gibt true zurück, wenn String A in String B vorhanden ist |
| muster.whereis (a) .inn (b) | Gibt die Indexposition von String A in String B zurück |
Beispiel:
import rapidkode as rk
a = 'sasi'
b = 'satyasasivatsal'
print ( rk . isthere ( a ). inn ( b ))
print ( rk . whereis ( a ). inn ( b ))
Ausgabe:
LinkedList -Funktionen:
| Betrieb | Syntax |
|---|
| .ins_beg (Knoten) | Fügt zu Beginn einen neuen Knoten ein |
| .ins_end (Knoten) | Fügt am Ende einen neuen Knoten ein |
| .ins_after (pos, Knoten) | Fügt einen neuen Knoten nach dem angegebenen Knoten ein |
| .ins_before (pos, Knoten) | Fügt einen neuen Knoten vor dem angegebenen Knoten ein |
| .del_node (Knoten) | Löscht den angegebenen Knoten |
| .Return_as_List () | Gibt die LinkedList als Python -Liste zurück |
Beispiel:
import rapidkode as rk
my_list = rk . linkedlist ()
my_list . head = rk . node ( 'a' )
s1 = rk . node ( 'b' )
s2 = rk . node ( 'c' )
s3 = rk . node ( 'd' )
s4 = rk . node ( 'e' )
s5 = rk . node ( 'f' )
s6 = rk . node ( 'g' )
my_list . head . next = s1
s1 . next = s2
s2 . next = s3
s3 . next = s4
s4 . next = s5
s5 . next = s6
print ( my_list )
Ausgabe :
a -> b -> c -> d -> e -> f -> g -> None
Beispiel -2:
# insertion at beginning
my_list . ins_beg ( rk . node ( 'A' ))
# insertion at end
my_list . ins_end ( rk . node ( 'G' ))
# insertion at positiom
my_list . ins_after ( 'e' , rk . node ( 'E' ))
# insertion at position
my_list . ins_before ( 'c' , rk . node ( 'C' ))
# deletion of ndoe
my_list . del_node ( 'b' )
# returning as list
my_listt = my_list . return_as_list ()
print ( my_list )
print ( my_listt )
Ausgabe :
A -> a -> C -> c -> d -> e -> E -> f -> g -> G -> None
['A', 'a', 'C', 'c', 'd', 'e', 'E', 'f', 'g', 'G', 'None']
Bit -Manipulationfuktionen:
| Syntax | Betrieb |
|---|
| bits.toggle_bits (x) | Schaltet die festgelegten Bits und Nicht -Set -Bits um |
| bits.convert_to_bin (x) | Konvertiert eine bestimmte Zahl in binäre |
| bits.counsetbits (x) | Gibt die Nr. OF -Set -Bits in einer DEC -Nummer zurück |
| Bits.ROTATE_BYLEFT (X, D) | Dreht die Bits nach d die Zeit nach l links |
| bits.rotate_byright (x, d) | Dreht die Bits nach d die Zeit nach l links |
| bits.countflips (x, y) | Gibt die Flips Nr. Zurück, um x als y zu machen |
Beispiel:
import rapidkode as rk
var = rk . bits . toggle_bits ( 873652 )
print ( var )
var = rk . bits . convert_to_bin ( 873652 )
print ( var )
var = rk . bits . countsetbits ( 873652 )
print ( var )
var = rk . bits . rotate_byleft ( 873652 , 4 )
print ( var )
var = rk . bits . rotate_byright ( 873652 , 4 )
print ( var )
var = rk . bits . countflips ( 8934756 , 873652 )
print ( var )
Ausgabe:
960632
11010101010010110100
8474306
13978432
54603
7
Andere Fehlfunktionen:
| Syntax | Betrieb |
|---|
| .showsiesves () | Drucken setzt Code für die Suche nach der Primzahl im Terminal |
| GetPrimefactors.fornum (x) | Gibt eine Liste von Primfaktoren für eine bestimmte Zahl zurück |
| findGcdof (x, y) | Gibt die GCD der angegebenen Zahlen zurück |
| findInversions.forr (arr) | Gibt zurück, wie nahe das Array aus sortiert wird |
| catlan_numbers.getElement (x) | Gibt die X'th Catlan -Nummer zurück |
| catlan_numbers.gen (x) | Gibt eine Liste der ersten x catlan_numbers zurück |
Beispiel:
import rapidkode as rk
var = rk . getprimefactors . fornum ( 6754 )
print ( var )
var = rk . findgcdof ( 97345435 , 8764897 )
print ( var )
var = rk . findinversions . forr ([ 1 , 20 , 6 , 4 , 5 ])
print ( var )
var = rk . catlan_numbers . getelement ( 15 )
print ( var )
var = rk . catlan_numbers . gen ( 28 )
print ( var )
Ausgabe:
[2, 11, 307.0]
1
5
9694845.0
[1.0, 1.0, 2.0, 5.0, 14.0, 42.0, 132.0, 429.0, 1430.0, 4862.0, 16796.0, 58786.0, 208012.0, 742900.0, 2674440.0, 9694845.0, 35357670.0, 129644790.0, 477638700.0, 1767263190.0, 6564120420.0, 24466267020.0, 91482563640.0, 343059613650.0, 1289904147324.0, 4861946401452.0, 18367353072152.0, 69533550916004.0]
Beitrag zu Rapidkode
- Alle Beiträge, Fehlerberichte, Fehlerbehebungen, Verbesserungen, Verbesserungen, Verbesserungen und Ideen sind willkommen.
- Machen Sie ein Problem auf, wenn Sie ein Problem finden
- Wenn Sie einen Beitrag leisten möchten, geben Sie das Repo ein Problem an, bevor Sie eine Pull -Anfrage stellen
- Logo- und Header -Credits -> m.sri harsha❤️
Happy Rapid Koding !!