├── lib ├── pages │ ├── BottomNavigationBarWidget.dart │ ├── DataStructures.dart │ ├── Algorithm.dart │ └── HomePage.dart └── main.dart ├── android ├── settings_aar.gradle ├── gradle.properties ├── app │ ├── src │ │ ├── main │ │ │ ├── res │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── drawable │ │ │ │ │ └── launch_background.xml │ │ │ │ └── values │ │ │ │ │ └── styles.xml │ │ │ ├── kotlin │ │ │ │ └── com │ │ │ │ │ └── example │ │ │ │ │ └── algobook │ │ │ │ │ └── MainActivity.kt │ │ │ └── AndroidManifest.xml │ │ ├── debug │ │ │ └── AndroidManifest.xml │ │ └── profile │ │ │ └── AndroidManifest.xml │ └── build.gradle ├── gradle │ └── wrapper │ │ └── gradle-wrapper.properties ├── .gitignore ├── settings.gradle └── build.gradle ├── ios ├── Flutter │ ├── Debug.xcconfig │ ├── Release.xcconfig │ └── AppFrameworkInfo.plist ├── Runner │ ├── Runner-Bridging-Header.h │ ├── Assets.xcassets │ │ ├── LaunchImage.imageset │ │ │ ├── LaunchImage.png │ │ │ ├── LaunchImage@2x.png │ │ │ ├── LaunchImage@3x.png │ │ │ ├── README.md │ │ │ └── Contents.json │ │ └── AppIcon.appiconset │ │ │ ├── Icon-App-20x20@1x.png │ │ │ ├── Icon-App-20x20@2x.png │ │ │ ├── Icon-App-20x20@3x.png │ │ │ ├── Icon-App-29x29@1x.png │ │ │ ├── Icon-App-29x29@2x.png │ │ │ ├── Icon-App-29x29@3x.png │ │ │ ├── Icon-App-40x40@1x.png │ │ │ ├── Icon-App-40x40@2x.png │ │ │ ├── Icon-App-40x40@3x.png │ │ │ ├── Icon-App-60x60@2x.png │ │ │ ├── Icon-App-60x60@3x.png │ │ │ ├── Icon-App-76x76@1x.png │ │ │ ├── Icon-App-76x76@2x.png │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ ├── Icon-App-83.5x83.5@2x.png │ │ │ └── Contents.json │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── Main.storyboard │ │ └── LaunchScreen.storyboard │ └── Info.plist ├── Runner.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── WorkspaceSettings.xcsettings │ │ └── IDEWorkspaceChecks.plist ├── Runner.xcodeproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ ├── WorkspaceSettings.xcsettings │ │ │ └── IDEWorkspaceChecks.plist │ ├── xcshareddata │ │ └── xcschemes │ │ │ └── Runner.xcscheme │ └── project.pbxproj └── .gitignore ├── 1.jpeg ├── 2.jpeg ├── 3.jpeg ├── new ui.jpeg ├── assets ├── icon.png ├── noAlgo.jpg ├── contribution │ ├── code.png │ ├── code1.png │ ├── diction.png │ ├── customTile.png │ ├── diction1.png │ └── timecomplexity.png ├── fonts │ ├── SourceCodePro-Light.ttf │ ├── SourceCodePro-Medium.ttf │ ├── SourceCodePro-Regular.ttf │ ├── SourceCodePro-ExtraLight.ttf │ ├── SourceCodePro-MediumItalic.ttf │ └── OFL.txt └── files │ ├── max_subarray_sum.txt │ ├── linear_search.txt │ ├── insertion_sort,txt │ ├── kruskals_algorithm.txt │ ├── number_in_bits.txt │ ├── insertion_sort.txt │ ├── radix_sort.txt │ ├── dining_philosopher │ ├── monto_carlo.txt │ ├── prim.txt │ ├── bubble_sort.txt │ ├── set_representation.txt │ ├── binary_search.txt │ ├── LCS.txt │ ├── rabin_karp.txt │ ├── generating_subsets.txt │ ├── shell_sort.txt │ ├── jump search.txt │ ├── knapsack.txt │ ├── paths_in_a_grid.txt │ ├── longest_common_subsequence.txt │ ├── producer_consumer.txt │ ├── DFS.txt │ ├── selection_sort.txt │ ├── johnson.txt │ ├── FCFS_Disk_Scheduling │ ├── generating_permutation.txt │ ├── Longest_increasing_subsequence.txt │ ├── bellman_ford.txt │ ├── dijkstra.txt │ ├── topological_sort.txt │ ├── Greedy Algorithm to find Minimum number of Coins.txt │ ├── binary_search_tree_insertion.txt │ ├── bucket_sort.txt │ ├── Seive_of_erastosthenes.txt │ ├── heap_sort.txt │ ├── merge_sort.txt │ ├── bfs.txt │ ├── Matrix_multiplication.txt │ ├── floyd_warshall.txt │ ├── kmp.txt │ ├── quick_sort.txt │ ├── bridges_in_a_graph.txt │ ├── minimum_partition.txt │ ├── fermats.txt │ ├── prioritySchedulingNonPremp.txt │ ├── Banker's Algorithm.txt │ ├── counting_sort.txt │ ├── Circular Queue Creation.txt │ ├── C-SCAN_Disc_Scheduling │ ├── Banker's_Algorithm.txt │ ├── SCAN_Disk_Scheduling │ └── tim_sort.txt ├── web ├── favicon.png ├── icons │ ├── Icon-192.png │ └── Icon-512.png ├── manifest.json └── index.html ├── .metadata ├── .gitignore ├── Contributor.md ├── LICENSE ├── test └── widget_test.dart ├── README.md ├── pubspec.yaml └── pubspec.lock /lib/pages/BottomNavigationBarWidget.dart: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /android/settings_aar.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /1.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/1.jpeg -------------------------------------------------------------------------------- /2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/2.jpeg -------------------------------------------------------------------------------- /3.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/3.jpeg -------------------------------------------------------------------------------- /ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" 2 | -------------------------------------------------------------------------------- /new ui.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/new ui.jpeg -------------------------------------------------------------------------------- /assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/assets/icon.png -------------------------------------------------------------------------------- /web/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/web/favicon.png -------------------------------------------------------------------------------- /assets/noAlgo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/assets/noAlgo.jpg -------------------------------------------------------------------------------- /web/icons/Icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/web/icons/Icon-192.png -------------------------------------------------------------------------------- /web/icons/Icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/web/icons/Icon-512.png -------------------------------------------------------------------------------- /assets/contribution/code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/assets/contribution/code.png -------------------------------------------------------------------------------- /assets/contribution/code1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/assets/contribution/code1.png -------------------------------------------------------------------------------- /assets/contribution/diction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/assets/contribution/diction.png -------------------------------------------------------------------------------- /assets/contribution/customTile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/assets/contribution/customTile.png -------------------------------------------------------------------------------- /assets/contribution/diction1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/assets/contribution/diction1.png -------------------------------------------------------------------------------- /assets/fonts/SourceCodePro-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/assets/fonts/SourceCodePro-Light.ttf -------------------------------------------------------------------------------- /assets/contribution/timecomplexity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/assets/contribution/timecomplexity.png -------------------------------------------------------------------------------- /assets/fonts/SourceCodePro-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/assets/fonts/SourceCodePro-Medium.ttf -------------------------------------------------------------------------------- /assets/fonts/SourceCodePro-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/assets/fonts/SourceCodePro-Regular.ttf -------------------------------------------------------------------------------- /assets/fonts/SourceCodePro-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/assets/fonts/SourceCodePro-ExtraLight.ttf -------------------------------------------------------------------------------- /assets/fonts/SourceCodePro-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/assets/fonts/SourceCodePro-MediumItalic.ttf -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | android.enableR8=true 3 | android.useAndroidX=true 4 | android.enableJetifier=true 5 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /assets/files/max_subarray_sum.txt: -------------------------------------------------------------------------------- 1 | int best = 0, sum = 0; 2 | for (int k = 0; k < n; k++) { 3 | sum = max(array[k],sum+array[k]); 4 | best = max(best,sum); 5 | } 6 | cout << best << '\n'; 7 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gloria2000/AlgoBook/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /android/app/src/main/kotlin/com/example/algobook/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.algobook 2 | 3 | import io.flutter.embedding.android.FlutterActivity 4 | 5 | class MainActivity: FlutterActivity() { 6 | } 7 | -------------------------------------------------------------------------------- /assets/files/linear_search.txt: -------------------------------------------------------------------------------- 1 | int search(int arr[], int n, int x) 2 | { 3 | int i; 4 | for (i = 0; i < n; i++) 5 | if (arr[i] == x) 6 | return i; 7 | return -1; 8 | } 9 | -------------------------------------------------------------------------------- /assets/files/insertion_sort,txt: -------------------------------------------------------------------------------- 1 | i=2 2 | while(i<=n) 3 | key=a[i] 4 | j=i-1 5 | while(j>0 and a[j]>key) 6 | a[j+1]=a[j] 7 | j=j-1 8 | end while 9 | a[j+1]=key 10 | i++ 11 | end while 12 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/files/kruskals_algorithm.txt: -------------------------------------------------------------------------------- 1 | (G): 2 | A = ∅ 3 | For each vertex v ∈ G.V: 4 | MAKE-SET(v) 5 | For each edge (u, v) ∈ G.E ordered by increasing order by weight(u, v): 6 | if FIND-SET(u) ≠ FIND-SET(v): 7 | A = A ∪ {(u, v)} 8 | UNION(u, v) 9 | return A 10 | -------------------------------------------------------------------------------- /assets/files/number_in_bits.txt: -------------------------------------------------------------------------------- 1 | //32 bit representation of 2 | //an interger number 3 | //change value of k according 4 | //to the number of bits required 5 | 6 | for( int k=31;k>=0;k--){ 7 | if(x&(1<= 0 and a[j] > key 8 | a[j+1] = a[j] 9 | j = j - 1 10 | a[j+1] = key 11 | next i 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 23 08:50:38 CEST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip 7 | -------------------------------------------------------------------------------- /assets/files/radix_sort.txt: -------------------------------------------------------------------------------- 1 | void radixsort(int array[], int size) { 2 | // Get maximum element 3 | int max = getMax(array, size); 4 | 5 | // Apply counting sort to sort elements based on place value. 6 | for (int place = 1; max / place > 0; place *= 10) 7 | countingSort(array, size, place); 8 | } -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /assets/files/dining_philosopher: -------------------------------------------------------------------------------- 1 | //The structure of philosopher i 2 | 3 | do { 4 | wait( chopstick[i] ); 5 | wait( chopstick[ (i+1) % 5] ); 6 | . . 7 | . EATING THE RICE 8 | . 9 | signal( chopstick[i] ); 10 | signal( chopstick[ (i+1) % 5] ); 11 | . 12 | . THINKING 13 | . 14 | } while(1); 15 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | 9 | # Remember to never publicly share your keystore. 10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app 11 | key.properties 12 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /assets/files/monto_carlo.txt: -------------------------------------------------------------------------------- 1 | //Function Point returns a random point in the unit circle. 2 | func Point() (x, y float64) { 3 | for { // This loop runs 4/π times on average. 4 | x = 2*rand.Float64() - 1 5 | y = 2*rand.Float64() - 1 6 | if x*x+y*y < 1 { 7 | return 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /assets/files/prim.txt: -------------------------------------------------------------------------------- 1 | "KRUSKAL(G):\n" 2 | "A = ∅\n" 3 | "For each vertex v ∈ G.V:\n" 4 | " MAKE-SET(v)\n" 5 | "For each edge (u, v) ∈ G.E ordered by increasing order by weight(u, v):\n" 6 | " if FIND-SET(u) ≠ FIND-SET(v):\n" 7 | " A = A ∪ {(u, v)}\n" 8 | " UNION(u, v)\n" -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: f994b769743368b36b9c03fb359f62230b60ab92 8 | channel: beta 9 | 10 | project_type: app 11 | -------------------------------------------------------------------------------- /assets/files/bubble_sort.txt: -------------------------------------------------------------------------------- 1 | void bubbleSort(int array[], int size) { 2 | for (int step = 0; step < size - 1; ++step) { 3 | for (int i = 0; i < size - step - 1; ++i) { 4 | if (array[i] > array[i + 1]) { 5 | int temp = array[i]; 6 | array[i] = array[i + 1]; 7 | array[i + 1] = temp; 8 | } 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /assets/files/set_representation.txt: -------------------------------------------------------------------------------- 1 | //to represent the set {1,3,4,8} 2 | 3 | int x=0; 4 | x |= (1<<1); 5 | x |=(1<<3); 6 | x |=(1<<4); 7 | x |=(1<<8); 8 | 9 | //to print size of the set C++ STL 10 | cout <<__builtin_popcount(x)<<'\n'; 11 | 12 | //print all elements belonging to the set 13 | for(int i=0; i<32; i++){ 14 | if(x&(1< 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/files/binary_search.txt: -------------------------------------------------------------------------------- 1 | beg: first element 2 | end: last element 3 | 4 | int binarySearch(int array[], int x, int beg, int end) { 5 | while (beg <= end) { 6 | int mid = beg + (end - beg) / 2; 7 | if (array[mid] == x) 8 | return mid; 9 | if (array[mid] < x) 10 | beg = mid + 1; 11 | else 12 | end = mid - 1; 13 | } 14 | return -1; 15 | } 16 | -------------------------------------------------------------------------------- /android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/files/LCS.txt: -------------------------------------------------------------------------------- 1 | n = t.length 2 | m = p.length 3 | h = dm-1 mod q 4 | p = 0 5 | t0 = 0 6 | for i = 1 to m 7 | p = (dp + p[i]) mod q 8 | t0 = (dt0 + t[i]) mod q 9 | for s = 0 to n - m 10 | if p = ts 11 | if p[1.....m] = t[s + 1..... s + m] 12 | print( pattern found at position s) 13 | If s < n-m 14 | ts + 1 = (d (ts - t[s + 1]h) + t[s + m + 1]) mod q 15 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /assets/files/rabin_karp.txt: -------------------------------------------------------------------------------- 1 | n = t.length 2 | m = p.length 3 | h = dm-1 mod q 4 | p = 0 5 | t0 = 0 6 | for i = 1 to m 7 | p = (dp + p[i]) mod q 8 | t0 = (dt0 + t[i]) mod q 9 | for s = 0 to n - m 10 | if p = ts 11 | if p[1.....m] = t[s + 1..... s + m] 12 | print( pattern found at position s) 13 | If s < n-m 14 | ts + 1 = (d (ts - t[s + 1]h) + t[s + m + 1]) mod q 15 | -------------------------------------------------------------------------------- /assets/files/generating_subsets.txt: -------------------------------------------------------------------------------- 1 | //recursive algorithm\n 2 | vector subset; 3 | void generate(int k) { 4 | if (k == n+1) { 5 | //subset created,process subset 6 | } 7 | else { 8 | // include k in the subset 9 | subset.push_back(k); 10 | generate(k+1); 11 | subset.pop_back(); 12 | // don’t include k in the subset 13 | generate(k+1); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /assets/files/shell_sort.txt: -------------------------------------------------------------------------------- 1 | void shellSort(int array[], int n) { 2 | for (int interval = n / 2; interval > 0; interval /= 2) { 3 | for (int i = interval; i < n; i += 1) { 4 | int temp = array[i]; 5 | int j; 6 | for (j = i; j >= interval && array[j - interval] > temp; j -= interval) { 7 | array[j] = array[j - interval]; 8 | } 9 | array[j] = temp; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /assets/files/jump search.txt: -------------------------------------------------------------------------------- 1 | Begin 2 | blockSize := √size 3 | start := 0 4 | end := blockSize 5 | while array[end] <= key AND end < size do 6 | start := end 7 | end := end + blockSize 8 | if end > size – 1 then 9 | end := size 10 | done 11 | for i := start to end -1 do 12 | if array[i] = key then 13 | return i 14 | done 15 | return invalid location 16 | End 17 | -------------------------------------------------------------------------------- /assets/files/knapsack.txt: -------------------------------------------------------------------------------- 1 | Given a list of weights [w1,w2...wn] determine all the sums that can be constructed using the given weights. 2 | 3 | By recursive method: 4 | 5 | possible[0][0] = true; 6 | for (int k = 1; k <= n; k++) { 7 | for (int x = 0; x <= m; x++) { 8 | if (x-w[k] >= 0) { 9 | possible[x][k] |= possible[x-w[k]][k-1]; 10 | } 11 | possible[x][k] |= possible[x][k-1]; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /assets/files/paths_in_a_grid.txt: -------------------------------------------------------------------------------- 1 | Given a grid, value[n][n], find the maximum sum while traversing from upper left corner to the lower right corner 2 | 3 | int sum[N][N];//To store the sum 4 | //sum[y][x] denotes the maximum sum from upper left corner to square[y][x] 5 | 6 | 7 | for (int y = 1; y <= n; y++) { 8 | for (int x = 1; x <= n; x++) { 9 | sum[y][x] = max(sum[y][x-1],sum[y-1][x])+value[y][x]; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Flutter 3 | 4 | @UIApplicationMain 5 | @objc class AppDelegate: FlutterAppDelegate { 6 | override func application( 7 | _ application: UIApplication, 8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 9 | ) -> Bool { 10 | GeneratedPluginRegistrant.register(with: self) 11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /assets/files/longest_common_subsequence.txt: -------------------------------------------------------------------------------- 1 | X and Y be two given sequences 2 | Initialize a table LCS of dimension X.length * Y.length 3 | X.label = X 4 | Y.label = Y 5 | LCS[0][] = 0 6 | LCS[][0] = 0 7 | Start from LCS[1][1] 8 | Compare X[i] and Y[j] 9 | If X[i] = Y[j] 10 | LCS[i][j] = 1 + LCS[i-1, j-1] 11 | Point an arrow to LCS[i][j] 12 | Else 13 | LCS[i][j] = max(LCS[i-1][j], LCS[i][j-1]) 14 | Point an arrow to max(LCS[i-1][j], LCS[i][j-1])\ 15 | -------------------------------------------------------------------------------- /assets/files/producer_consumer.txt: -------------------------------------------------------------------------------- 1 | //Producer Process 2 | do { 3 | . 4 | . PRODUCE ITEM 5 | . 6 | wait(empty); 7 | wait(mutex); 8 | . 9 | . PUT ITEM IN BUFFER 10 | . 11 | signal(mutex); 12 | signal(full); 13 | 14 | } while(1); 15 | 16 | //Consumer Process 17 | do { 18 | 19 | wait(full); 20 | wait(mutex); 21 | . . 22 | . REMOVE ITEM FROM BUFFER 23 | . 24 | signal(mutex); 25 | signal(empty); 26 | . 27 | . CONSUME ITEM 28 | . 29 | } while(1); -------------------------------------------------------------------------------- /assets/files/DFS.txt: -------------------------------------------------------------------------------- 1 | typedef int Vertex; 2 | #define VERTEX_NULL (-1) 3 | void dfsHelper(struct graph *g, Vertex parent, Vertex child) 4 | { 5 | int i; 6 | Vertex neighbor; 7 | if(g->v[child].parent==VERTEX_NULL) { 8 | g->v[child].parent=parent; 9 | for(i = 0; (neighbor = g->v[child].neighbors[i]) != VERTEX_NULL; i++) { 10 | dfsHelper(g, child, neighbor); 11 | } 12 | } 13 | } 14 | 15 | void dfs(struct graph *g, Vertex root) 16 | {dfsHelper(g, root, root);}\ 17 | -------------------------------------------------------------------------------- /assets/files/selection_sort.txt: -------------------------------------------------------------------------------- 1 | void selectionSort(int array[], int size) { 2 | for (int step = 0; step < size - 1; step++) { 3 | int min_idx = step; 4 | for (int i = step + 1; i < size; i++) { 5 | 6 | // To sort in descending order, change > to < in this line. 7 | // Select the minimum element in each loop. 8 | if (array[i] < array[min_idx]) 9 | min_idx = i; 10 | } 11 | 12 | // put min at the correct position 13 | swap(&array[min_idx], &array[step]); 14 | } 15 | } -------------------------------------------------------------------------------- /assets/files/johnson.txt: -------------------------------------------------------------------------------- 1 | Input : Graph G 2 | Output : List of all pair shortest paths for G 3 | 4 | Johnson(G){ 5 | 6 | G'.V = G.V + {n} 7 | G'.E = G.E + ((s,u) for u in G.V) 8 | weight(n,u) = 0 in G.V 9 | 10 | Dist = BellmanFord(G'.V,G'.E) 11 | for edge(u,v) in G'.E do 12 | weight(u,v) += h[u] - h[v] 13 | end 14 | 15 | L = [] /*for storing result*/ 16 | for vertex v in G.V do 17 | L += Dijkstra(G, G.V) 18 | end 19 | 20 | return L 21 | } 22 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /assets/files/FCFS_Disk_Scheduling: -------------------------------------------------------------------------------- 1 | //fcfs disk scheduling 2 | 3 | //head-->head position 4 | //rs[]-->request sequence 5 | //front-->position of current element 6 | //rear-->position of last element 7 | 8 | for(front=0;front<=rear;front++) 9 | { 10 | d=abs(rs[front]-head); 11 | dist+=d; 12 | seek_count+=1; 13 | head=rs[front]; 14 | } 15 | print("Total seek-time: %d",dist); 16 | print("Seek-count: %d",seek_count); 17 | print("Average seek-time: %f",(float)dist/seek_count); 18 | 19 | -------------------------------------------------------------------------------- /assets/files/generating_permutation.txt: -------------------------------------------------------------------------------- 1 | //recursive algorithm to generat 2 | //permutations of a set of n elements\n 3 | vector permutation; 4 | bool chosen[n+1]; 5 | 6 | void search() { 7 | if (permutation.size() == n) { 8 | // process permutation 9 | } 10 | else { 11 | for (int i = 1; i <= n; i++) { 12 | if (chosen[i]) continue; 13 | chosen[i] = true; 14 | permutation.push_back(i); 15 | search(); 16 | chosen[i] = false; 17 | permutation.pop_back(); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /assets/files/Longest_increasing_subsequence.txt: -------------------------------------------------------------------------------- 1 | int longestIncreasingSubsequence( int arr[], int n ) 2 | { 3 | int lis[n]; 4 | lis[0] = 1; 5 | /* Compute optimized LIS values in 6 | bottom up manner */ 7 | for (int i = 1; i < n; i++ ) 8 | { 9 | lis[i] = 1; 10 | for (int j = 0; j < i; j++ ) 11 | if ( arr[i] > arr[j] && lis[i] < lis[j] + 1) 12 | lis[i] = lis[j] + 1; 13 | } 14 | // Return maximum value in lis[] 15 | return *max_element(lis, lis+n); 16 | } 17 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "LaunchImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /assets/files/bellman_ford.txt: -------------------------------------------------------------------------------- 1 | function bellmanFord(G, S) 2 | for each vertex V in G 3 | distance[V] <- infinite 4 | previous[V] <- NULL 5 | distance[S] <- 0\n 6 | for each vertex V in G 7 | for each edge (U,V) in G 8 | tempDistance <- distance[U] + edge_weight(U, V) 9 | if tempDistance < distance[V] 10 | distance[V] <- tempDistance 11 | previous[V] <- U\n 12 | for each edge (U,V) in G 13 | If distance[U] + edge_weight(U, V) < distance[V} 14 | Error: Negative Cycle Exists\n 15 | return distance[], previous[]\ 16 | -------------------------------------------------------------------------------- /assets/files/dijkstra.txt: -------------------------------------------------------------------------------- 1 | function Dijkstra(Graph, source): 2 | dist[source] := 0 3 | for each vertex v in Graph: 4 | if v ≠ source 5 | dist[v] := infinity 6 | add v to Q 7 | 8 | while Q is not empty: 9 | v := vertex in Q with min dist[v] 10 | remove v from Q 11 | 12 | for each neighbor u of v: 13 | alt := dist[v] + length(v, u) 14 | if alt < dist[u]: 15 | dist[u] := alt 16 | 17 | return dist[] 18 | end function 19 | -------------------------------------------------------------------------------- /assets/files/topological_sort.txt: -------------------------------------------------------------------------------- 1 | int n; // number of vertices 2 | vector> adj; // adjacency list of graph 3 | vector visited; 4 | vector ans; 5 | 6 | void dfs(int v) { 7 | visited[v] = true; 8 | for (int u : adj[v]) { 9 | if (!visited[u]) 10 | dfs(u); 11 | } 12 | ans.push_back(v); 13 | } 14 | 15 | void topological_sort() { 16 | visited.assign(n, false); 17 | ans.clear(); 18 | for (int i = 0; i < n; ++i) { 19 | if (!visited[i]) 20 | dfs(i); 21 | } 22 | reverse(ans.begin(), ans.end()); 23 | }\ 24 | -------------------------------------------------------------------------------- /assets/files/Greedy Algorithm to find Minimum number of Coins.txt: -------------------------------------------------------------------------------- 1 | 1. Sort the array of coins in decreasing order. 2 | 2. Initialize result as empty. 3 | 3. Find the largest denomination that is smaller than current amount. 4 | 4. Add found denomination to result. Subtract value of found denomination from amount. 5 | 5. If amount becomes 0, then print result. 6 | 6. Else repeat steps 3 and 4 for new value of V. 7 | 8 | Input: V = 70 9 | Output: 2 10 | We need a 50 Rs note and a 20 Rs note. 11 | 12 | Input: V = 121 13 | Output: 3 14 | We need a 100 Rs note, a 20 Rs note and a 1 Rs coin. -------------------------------------------------------------------------------- /assets/files/binary_search_tree_insertion.txt: -------------------------------------------------------------------------------- 1 | ptr=root 2 | flag=false 3 | while(ptr!=NULL) and (flag=false) do 4 | if(itemdata) 5 | ptr1=ptr 6 | ptr=ptr->lchild 7 | else if(item>ptr->data) 8 | ptr1=ptr 9 | ptr=ptr->rchild 10 | else if(item=ptr->data) 11 | flag=true 12 | print("Data already exist") 13 | end if 14 | end while 15 | if(ptr=NULL) 16 | new=getnode() 17 | new->data=item 18 | new->lchild=NULL 19 | new->rchild=NULL 20 | if(ptr1->data>item) 21 | ptr1->lchild=new 22 | else if(ptr1->datarchild=new 24 | end if 25 | end if 26 | -------------------------------------------------------------------------------- /assets/files/bucket_sort.txt: -------------------------------------------------------------------------------- 1 | void bucketSort(float arr[], int n) 2 | { 3 | // 1) Create n empty buckets 4 | vector b[n]; 5 | 6 | // 2) Put array elements in different buckets 7 | for (int i=0; i properties.load(reader) } 12 | 13 | def flutterSdkPath = properties.getProperty("flutter.sdk") 14 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties" 15 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" 16 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext.kotlin_version = '1.3.50' 3 | repositories { 4 | google() 5 | jcenter() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:3.5.0' 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 | } 12 | } 13 | 14 | allprojects { 15 | repositories { 16 | google() 17 | jcenter() 18 | } 19 | } 20 | 21 | rootProject.buildDir = '../build' 22 | subprojects { 23 | project.buildDir = "${rootProject.buildDir}/${project.name}" 24 | } 25 | subprojects { 26 | project.evaluationDependsOn(':app') 27 | } 28 | 29 | task clean(type: Delete) { 30 | delete rootProject.buildDir 31 | } 32 | -------------------------------------------------------------------------------- /assets/files/heap_sort.txt: -------------------------------------------------------------------------------- 1 | void heapify(int arr[], int n, int i) { 2 | int largest = i; 3 | int left = 2 * i + 1; 4 | int right = 2 * i + 2;\n 5 | if (left < n && arr[left] > arr[largest]) 6 | largest = left;\n 7 | if (right < n && arr[right] > arr[largest]) 8 | largest = right;\n 9 | if (largest != i) { 10 | swap(arr[i], arr[largest]); 11 | heapify(arr, n, largest); 12 | } 13 | }\n\n 14 | void heapSort(int arr[], int n) { 15 | for (int i = n / 2 - 1; i >= 0; i--) 16 | heapify(arr, n, i);\n 17 | for (int i = n - 1; i >= 0; i--) { 18 | swap(arr[0], arr[i]);\n 19 | // Heapify root element to get highest element at root again 20 | heapify(arr, i, 0); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /assets/files/merge_sort.txt: -------------------------------------------------------------------------------- 1 | void merge(int arr[], int p, int q, int r) { 2 | int n1 = q - p + 1; 3 | int n2 = r - q; 4 | int L[n1], M[n2]; 5 | for (int i = 0; i < n1; i++) 6 | L[i] = arr[p + i]; 7 | for (int j = 0; j < n2; j++) 8 | M[j] = arr[q + 1 + j];\n 9 | int i, j, k; 10 | i = 0; 11 | j = 0; 12 | k = p; 13 | while (i < n1 && j < n2) { 14 | if (L[i] <= M[j]) { 15 | arr[k] = L[i]; 16 | i++; 17 | } else { 18 | arr[k] = M[j]; 19 | j++; 20 | } 21 | k++; 22 | } 23 | while (i < n1) { 24 | arr[k] = L[i]; 25 | i++; 26 | k++; 27 | }\n 28 | while (j < n2) { 29 | arr[k] = M[j]; 30 | j++; 31 | k++; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /assets/files/bfs.txt: -------------------------------------------------------------------------------- 1 | typedef int Vertex; 2 | #define VERTEX_NULL (-1) 3 | 4 | void bfs(struct graph *g, Vertex root) 5 | { 6 | Vertex *q; 7 | int head; /* deq from here */ 8 | int tail; /* enq from here */ 9 | Vertex current; 10 | Vertex nbr; 11 | int i; 12 | q = malloc(sizeof(Vertex) * g->n); 13 | assert(q); 14 | head = tail = 0; 15 | /* push root onto q */ 16 | g->v[root].parent = root; 17 | q[tail++] = root; 18 | while(head < tail) { 19 | current = q[head++]; 20 | for(i = 0; (nbr = g->v[current].neighbors[i]) != VERTEX_NULL; i++) { 21 | if(g->v[nbr].parent == VERTEX_NULL) { 22 | /* haven't visited */ 23 | /* push it */ 24 | g->v[nbr].parent = current; 25 | q[tail++] = nbr; 26 | } 27 | } 28 | } 29 | free(q); 30 | } 31 | -------------------------------------------------------------------------------- /assets/files/Matrix_multiplication.txt: -------------------------------------------------------------------------------- 1 | Step 1: Start the Program. 2 | 3 | Step 2: Enter the row and column of the first (a) matrix. 4 | 5 | Step 3: Enter the row and column of the second (b) matrix. 6 | 7 | Step 4: Enter the elements of the first (a) matrix. 8 | 9 | Step 5: Enter the elements of the second (b) matrix. 10 | 11 | Step 6: Print the elements of the first (a) matrix in matrix form. 12 | 13 | Step 7: Print the elements of the second (b) matrix in matrix form. 14 | 15 | Step 8: Set a loop up to row. 16 | 17 | Step 9: Set an inner loop up to the column. 18 | 19 | Step 10: Set another inner loop up to the column. 20 | 21 | Step 11: Multiply the first (a) and second (b) matrix and store the element in the third matrix (c) 22 | 23 | Step 12: Print the final matrix. 24 | 25 | Step 13: Stop the Program. -------------------------------------------------------------------------------- /assets/files/floyd_warshall.txt: -------------------------------------------------------------------------------- 1 | void floydWarshall (int graph[][V]) 2 | { 3 | for (i = 0; i < V; i++) 4 | for (j = 0; j < V; j++) 5 | dist[i][j] = graph[i][j]; 6 | for (k = 0; k < V; k++) 7 | { 8 | // Pick all vertices as source one by one 9 | for (i = 0; i < V; i++) 10 | { 11 | // Pick all vertices as destination for the 12 | // above picked source 13 | for (j = 0; j < V; j++) 14 | { 15 | // If vertex k is on the shortest path from 16 | // i to j, then update the value of dist[i][j] 17 | if (dist[i][k] + dist[k][j] < dist[i][j]) 18 | dist[i][j] = dist[i][k] + dist[k][j]; 19 | } 20 | } 21 | } 22 | // Print the shortest distance matrix 23 | printSolution(dist); 24 | }\ 25 | -------------------------------------------------------------------------------- /lib/main.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/cupertino.dart'; 2 | import 'package:flutter/material.dart'; 3 | import 'package:algobook/pages/HomePage.dart'; 4 | 5 | void main() { 6 | runApp(MyApp()); 7 | } 8 | 9 | class MyApp extends StatelessWidget { 10 | // This widget is the root of your application. 11 | @override 12 | Widget build(BuildContext context) { 13 | return MaterialApp( 14 | theme: ThemeData( 15 | accentColor: Color(0xFF24A19C), 16 | primaryColor:Color(0xFF24A19C), 17 | splashColor: Color(0xFF24A19C), 18 | focusColor: Color(0xFF24A19C), 19 | highlightColor: Color(0xFF24A19C), 20 | hintColor: Color(0xFF24A19C), 21 | hoverColor: Color(0xFF24A19C), 22 | ), 23 | title: '', 24 | color: Color(0xFF24A19C), 25 | home: MyHomePage(title:'Algo Book'), 26 | ); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /assets/files/kmp.txt: -------------------------------------------------------------------------------- 1 | Consists of two components: 2 | 1.The Prefix Functionne (Π) 3 | 2.The KMP Matcher 4 | PREFIX- FUNCTION (P) 5 | 1. m ←length [P] //'p' pattern to be matched 6 | 2. Π [1] ← 0 7 | 3. k ← 0 8 | 4. for q ← 2 to m 9 | 5. do while k > 0 and P [k + 1] ≠ P [q] 10 | 6. do k ← Π [k] 11 | 7. If P [k + 1] = P [q] 12 | 8. then k← k + 1 13 | 9. Π [q] ← k 14 | 10. Return Π 15 | KMP-MATCHER (T, P) 16 | 1. n ← length [T] 17 | 2. m ← length [P] 18 | 3. Π← COMPUTE-PREFIX-FUNCTION (P) 19 | 4. q ← 0 // numbers of characters matched 20 | 5. for i ← 1 to n // scan S from left to right 21 | 6. do while q > 0 and P [q + 1] ≠ T [i] 22 | 7. do q ← Π [q] // next character does not match 23 | 8. If P [q + 1] = T [i] 24 | 9. then q ← q + 1 // next character matches 25 | 10. If q = m // is all of p matched? 26 | 11. then print 'Pattern occurs with shift' i - m 27 | 12. q ← Π [q] // look for the next match -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | 12 | # IntelliJ related 13 | *.iml 14 | *.ipr 15 | *.iws 16 | .idea/ 17 | 18 | # The .vscode folder contains launch configuration and tasks you configure in 19 | # VS Code which you may wish to be included in version control, so this line 20 | # is commented out by default. 21 | #.vscode/ 22 | 23 | # Flutter/Dart/Pub related 24 | **/doc/api/ 25 | **/ios/Flutter/.last_build_id 26 | .dart_tool/ 27 | .flutter-plugins 28 | .flutter-plugins-dependencies 29 | .packages 30 | .pub-cache/ 31 | .pub/ 32 | /build/ 33 | 34 | # Web related 35 | lib/generated_plugin_registrant.dart 36 | 37 | # Symbolication related 38 | app.*.symbols 39 | 40 | # Obfuscation related 41 | app.*.map.json 42 | 43 | # Exceptions to above rules. 44 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages 45 | -------------------------------------------------------------------------------- /ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 8.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /assets/files/quick_sort.txt: -------------------------------------------------------------------------------- 1 | int partition(int array[], int low, int high) { 2 | // Select the pivot element 3 | int pivot = array[high]; 4 | int i = (low - 1);\n 5 | // Put the elements smaller than pivot on the left 6 | // and greater than pivot on the right of pivot 7 | for (int j = low; j < high; j++) { 8 | if (array[j] <= pivot) { 9 | i++; 10 | swap(&array[i], &array[j]); 11 | } 12 | } 13 | swap(&array[i + 1], &array[high]); 14 | return (i + 1); 15 | }\n 16 | void quickSort(int array[], int low, int high) { 17 | if (low < high) { 18 | // Select pivot position and put all the elements smaller 19 | // than pivot on left and greater than pivot on righ 20 | int pi = partition(array, low, high);\n 21 | // Sort the elements on the left of pivot 22 | quickSort(array, low, pi - 1);\n 23 | // Sort the elements on the right of pivot 24 | quickSort(array, pi + 1, high); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /assets/files/bridges_in_a_graph.txt: -------------------------------------------------------------------------------- 1 | int n; // number of nodes 2 | vector> adj; // adjacency list of graph 3 | 4 | vector visited; 5 | vector tin, low; 6 | int timer; 7 | 8 | void dfs(int v, int p = -1) { 9 | visited[v] = true; 10 | tin[v] = low[v] = timer++; 11 | for (int to : adj[v]) { 12 | if (to == p) continue; 13 | if (visited[to]) { 14 | low[v] = min(low[v], tin[to]); 15 | } else { 16 | dfs(to, v); 17 | low[v] = min(low[v], low[to]); 18 | if (low[to] > tin[v]) 19 | IS_BRIDGE(v, to); 20 | } 21 | } 22 | } 23 | 24 | void find_bridges() { 25 | timer = 0; 26 | visited.assign(n, false); 27 | tin.assign(n, -1); 28 | low.assign(n, -1); 29 | for (int i = 0; i < n; ++i) { 30 | if (!visited[i]) 31 | dfs(i); 32 | } 33 | }\n\n 34 | Function IS_BRIDGE(a, b) is some function that will process the fact that edge (a,b) is a bridge, for example, print i 35 | -------------------------------------------------------------------------------- /assets/files/minimum_partition.txt: -------------------------------------------------------------------------------- 1 | //Partition a set into two subsets such that the difference of subset sums is minimum 2 | 3 | 4 | int findMinRec(int arr[], int i, int sumCalculated, int sumTotal) 5 | { 6 | if (i==0) 7 | return abs((sumTotal-sumCalculated) - sumCalculated); 8 | 9 | // For every item arr[i], we have two choices 10 | // (1) We do not include it first set 11 | // (2) We include it in first set 12 | // We return minimum of two choices 13 | return min(findMinRec(arr, i-1, sumCalculated+arr[i-1], sumTotal), 14 | findMinRec(arr, i-1, sumCalculated, sumTotal)); 15 | } 16 | 17 | // Returns minimum possible difference between sums 18 | // of two subsets 19 | int findMin(int arr[], int n) 20 | { 21 | // Compute total sum of elements 22 | int sumTotal = 0; 23 | for (int i=0; i0) 26 | { 27 | // Pick a random number in [2..n-2] 28 | // Above corner cases make sure that n > 4 29 | int a = 2 + rand()%(n-4); 30 | 31 | // Checking if a and n are co-prime 32 | if (gcd(n, a) != 1) 33 | return false; 34 | 35 | // Fermat's little theorem 36 | if (power(a, n-1, n) != 1) 37 | return false; 38 | 39 | k--; 40 | } 41 | 42 | return true; 43 | } 44 | -------------------------------------------------------------------------------- /assets/files/prioritySchedulingNonPremp.txt: -------------------------------------------------------------------------------- 1 | 1. Start 2 | 2. Accept the no of processes that must be scheduled as n. 3 | 3. For each of the processes, assign the process ID and accept the priority numbers and the burst time of each process. 4 | 4. Now, sort the queue of processes according to the priority numbers.(such that the highest priority job comes first and lowest priority job comes last) 5 | 5. The waiting time of first process in the queue is 0 and its turn-around time is its burst time.(Set the values as such) 6 | 6. For each process in the ready queue, calculate 7 | 8 | a) Waiting Time of process(i) = Waiting time of process(i-1) + Burst Time of process(i-1) 9 | 10 | b) Turn-Around Time of process(i) = Waiting time of process(i) + Burst time of process(i) 11 | 12 | 7. Now, atlast calculate 13 | 14 | a) Average Waiting Time = Sum of waiting times of all the processes / No of processes(n) 15 | 16 | b) Average Turn-Around Time = Sum of Turn-Around Times of all processes / No of processes(n) 17 | 18 | 8.Stop -------------------------------------------------------------------------------- /assets/files/Banker's Algorithm.txt: -------------------------------------------------------------------------------- 1 | Safety Algorithm 2 | 3 | 1) Let Work and Finish be vectors of length ‘m’ and ‘n’ respectively. 4 | Initialize: Work = Available 5 | Finish[i] = false; for i=1, 2, 3, 4….n 6 | 7 | 2) Find an i such that both 8 | a) Finish[i] = false 9 | b) Needi <= Work 10 | if no such i exists goto step (4) 11 | 12 | 3) Work = Work + Allocation[i] 13 | Finish[i] = true 14 | goto step (2) 15 | 16 | 4) if Finish [i] = true for all i 17 | then the system is in a safe state 18 | 19 | Resource-Request Algorithm 20 | 21 | 1) If Requesti <= Needi 22 | Goto step (2) ; otherwise, raise an error condition, since the process has exceeded its maximum claim. 23 | 24 | 2) If Requesti <= Available 25 | Goto step (3); otherwise, Pi must wait, since the resources are not available. 26 | 27 | 3) Have the system pretend to have allocated the requested resources to process Pi by modifying the state as 28 | follows: 29 | Available = Available – Requesti 30 | Allocationi = Allocationi + Requesti 31 | Needi = Needi– Requesti -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /assets/files/counting_sort.txt: -------------------------------------------------------------------------------- 1 | void countSort(int array[], int size) { 2 | int output[10]; 3 | int count[10]; 4 | int max = array[0]; 5 | 6 | // Find the largest element of the array 7 | for (int i = 1; i < size; i++) { 8 | if (array[i] > max) 9 | max = array[i]; 10 | } 11 | 12 | // Initialize count array with all zeros. 13 | for (int i = 0; i <= max; ++i) { 14 | count[i] = 0; 15 | } 16 | 17 | // Store the count of each element 18 | for (int i = 0; i < size; i++) { 19 | count[array[i]]++; 20 | } 21 | 22 | // Store the cummulative count of each array 23 | for (int i = 1; i <= max; i++) { 24 | count[i] += count[i - 1]; 25 | } 26 | 27 | // Find the index of each element of the original array in count array, and 28 | // place the elements in output array 29 | for (int i = size - 1; i >= 0; i--) { 30 | output[count[array[i]] - 1] = array[i]; 31 | count[array[i]]--; 32 | } 33 | 34 | // Copy the sorted elements into original array 35 | for (int i = 0; i < size; i++) { 36 | array[i] = output[i]; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Contributor.md: -------------------------------------------------------------------------------- 1 | # How to contribute to AlgoBook App and submit PR! 2 | 3 | 4 | You don't have to know Flutter to contribute to this project! Follow the given steps and submit PR. Valid PRs will be labeled hacktoberfest-accepted. Any other PR that fixes a bug in the app is highly appreciated. All the best for Hacktoberfest 2020! 5 | 6 | 7 | * Fork this repository. 8 | * Check the list of algorithms that are present in the app (shown in [DataStructures.dart](https://github.com/gloria2000/AlgoBook/blob/master/lib/pages/DataStructures.dart) page in the dictionary named diction). 9 | * Find out an algorithm that is not present in the app and create a .txt file. Example: quick_sort.txt . (Note: There are an enormous number of algorithms out there and this app currently contains only 35 or so. Algorithms of any domain, like ML or Mathematics or any other domain are welcome. Go out and grab one!) 10 | * Add the file in [assets/files](https://github.com/gloria2000/AlgoBook/tree/master/assets/files) folder. 11 | * Commit the changes. Give the message as 'Add name_of_text_file'. For Example: 'Add quick_sort' 12 | * Submit the PR! 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Gloria Thomas 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /test/widget_test.dart: -------------------------------------------------------------------------------- 1 | // This is a basic Flutter widget test. 2 | // 3 | // To perform an interaction with a widget in your test, use the WidgetTester 4 | // utility that Flutter provides. For example, you can send tap and scroll 5 | // gestures. You can also use WidgetTester to find child widgets in the widget 6 | // tree, read text, and verify that the values of widget properties are correct. 7 | 8 | import 'package:flutter/material.dart'; 9 | import 'package:flutter_test/flutter_test.dart'; 10 | 11 | import 'package:algobook/main.dart'; 12 | 13 | void main() { 14 | testWidgets('Counter increments smoke test', (WidgetTester tester) async { 15 | // Build our app and trigger a frame. 16 | await tester.pumpWidget(MyApp()); 17 | 18 | // Verify that our counter starts at 0. 19 | expect(find.text('0'), findsOneWidget); 20 | expect(find.text('1'), findsNothing); 21 | 22 | // Tap the '+' icon and trigger a frame. 23 | await tester.tap(find.byIcon(Icons.add)); 24 | await tester.pump(); 25 | 26 | // Verify that our counter has incremented. 27 | expect(find.text('0'), findsNothing); 28 | expect(find.text('1'), findsOneWidget); 29 | }); 30 | } 31 | -------------------------------------------------------------------------------- /web/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | algobook 18 | 19 | 20 | 21 | 24 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /assets/files/Circular Queue Creation.txt: -------------------------------------------------------------------------------- 1 | 1. Define a structure node with and integer element and a pointer variable of the structure 2 | 3 | typedef struct node 4 | { 5 | int data; 6 | struct node *link; 7 | }node; 8 | 9 | 2. Declare some pointer variables that have to be used 10 | 11 | node *start,*ptr,*temp; 12 | 13 | 3. Dynamically initialize the start pointer and set ptr to start 14 | 15 | start = (node*)malloc(sizeof(node)); 16 | start->data = 0; 17 | start->link = NULL; 18 | ptr = start; 19 | 20 | 4. For the number of elements to be read into the queue repeat the following block of code. Assume the data to be entered is stored in a variable num. 21 | 22 | temp = (node*)malloc(sizeof(node)); // declare a temp pointer 23 | temp->data = num; // store the data 24 | temp->link = NULL; // make it point to null 25 | ptr->link = temp; // point the previous element to the current element 26 | ptr = ptr->link; // update the value of ptr 27 | 28 | 5. Make the last element point to the start of the queue. 29 | 30 | ptr->link = start; 31 | 32 | 6. To print the elements in queue 33 | 34 | ptr = start->link; // set ptr to start node's link, which points to the first element 35 | 36 | 7. While ptr is not equal to start print each data part. -------------------------------------------------------------------------------- /ios/Runner/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Runner/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | algobook 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | $(FLUTTER_BUILD_NAME) 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | $(FLUTTER_BUILD_NUMBER) 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UISupportedInterfaceOrientations 30 | 31 | UIInterfaceOrientationPortrait 32 | UIInterfaceOrientationLandscapeLeft 33 | UIInterfaceOrientationLandscapeRight 34 | 35 | UISupportedInterfaceOrientations~ipad 36 | 37 | UIInterfaceOrientationPortrait 38 | UIInterfaceOrientationPortraitUpsideDown 39 | UIInterfaceOrientationLandscapeLeft 40 | UIInterfaceOrientationLandscapeRight 41 | 42 | UIViewControllerBasedStatusBarAppearance 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /assets/files/C-SCAN_Disc_Scheduling: -------------------------------------------------------------------------------- 1 | //C-SCAN disk scheduling 2 | 3 | //head-->head position 4 | //rs[]-->request sequence 5 | //front-->position of current element 6 | //rear-->position of last element 7 | //rs0[]-->array to store rs[i]array to store rs[i]>head 9 | //dir-->head direction(towards end(1) or towards beginning(0)) 10 | //n0-->number of elements in rs0[] 11 | //n1-->number of elements in rs1[] 12 | 13 | //On inputting reguest-sequence(r), 14 | 15 | scanf("%d",&r); 16 | if(r>head) 17 | { 18 | rs1[i]=r; 19 | i++; 20 | rear1+=1; 21 | } 22 | else 23 | { 24 | rs0[j]=r; 25 | j++; 26 | rear0+=1; 27 | } 28 | 29 | //Sort both arrays r0[] and r1[] 30 | //Servicing request according to head direction 31 | if(dir==0) //towards beginning 32 | { 33 | for(i=n0-1,j=0;i>=0,j avail[j]){ 41 | flag = 1; 42 | break; 43 | } 44 | } 45 | 46 | if (flag == 0) { 47 | ans[ind++] = i; 48 | for (y = 0; y < m; y++) 49 | avail[y] += alloc[i][y]; 50 | f[i] = 1; 51 | } 52 | } 53 | } 54 | } 55 | 56 | printf("Following is the SAFE Sequence\n"); 57 | for (i = 0; i < n - 1; i++) 58 | printf(" P%d ->", ans[i]); 59 | printf(" P%d", ans[n - 1]); 60 | 61 | return (0); 62 | } 63 | -------------------------------------------------------------------------------- /android/app/build.gradle: -------------------------------------------------------------------------------- 1 | def localProperties = new Properties() 2 | def localPropertiesFile = rootProject.file('local.properties') 3 | if (localPropertiesFile.exists()) { 4 | localPropertiesFile.withReader('UTF-8') { reader -> 5 | localProperties.load(reader) 6 | } 7 | } 8 | 9 | def flutterRoot = localProperties.getProperty('flutter.sdk') 10 | if (flutterRoot == null) { 11 | throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") 12 | } 13 | 14 | def flutterVersionCode = localProperties.getProperty('flutter.versionCode') 15 | if (flutterVersionCode == null) { 16 | flutterVersionCode = '1' 17 | } 18 | 19 | def flutterVersionName = localProperties.getProperty('flutter.versionName') 20 | if (flutterVersionName == null) { 21 | flutterVersionName = '1.0' 22 | } 23 | 24 | apply plugin: 'com.android.application' 25 | apply plugin: 'kotlin-android' 26 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" 27 | 28 | android { 29 | compileSdkVersion 28 30 | 31 | sourceSets { 32 | main.java.srcDirs += 'src/main/kotlin' 33 | } 34 | 35 | lintOptions { 36 | disable 'InvalidPackage' 37 | } 38 | 39 | defaultConfig { 40 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). 41 | applicationId "com.example.algobook" 42 | minSdkVersion 16 43 | targetSdkVersion 28 44 | versionCode flutterVersionCode.toInteger() 45 | versionName flutterVersionName 46 | } 47 | 48 | buildTypes { 49 | release { 50 | // TODO: Add your own signing config for the release build. 51 | // Signing with the debug keys for now, so `flutter run --release` works. 52 | signingConfig signingConfigs.debug 53 | } 54 | } 55 | } 56 | 57 | flutter { 58 | source '../..' 59 | } 60 | 61 | dependencies { 62 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" 63 | } 64 | -------------------------------------------------------------------------------- /assets/files/SCAN_Disk_Scheduling: -------------------------------------------------------------------------------- 1 | //SCAN disk scheduling 2 | 3 | //The disk arm starts at one end of the disk, and moves toward 4 | //the other end, servicing requests until it gets to the other end of 5 | //the disk, where the head movement is reversed and servicing 6 | //continues. 7 | 8 | //head-->head position 9 | //rs[]-->request sequence 10 | //front-->position of current element 11 | //rear-->position of last element 12 | //rs0[]-->array to store rs[i]array to store rs[i]>head 14 | //dir-->head direction(towards end(1) or towards beginning(0)) 15 | //n0-->number of elements in rs0[] 16 | //n1-->number of elements in rs1[] 17 | 18 | //On inputting reguest-sequence(r), 19 | 20 | if(r>head) 21 | { 22 | rs1[i]=r; 23 | i++; 24 | rear1+=1; 25 | } 26 | else //(r=0,j=0,j 16 | --- 17 | | | | | 18 | |:---:|:---:|:---:| 19 | 20 | 21 | ## Getting Started 22 | 23 | This project is a starting point for a Flutter application. 24 | 25 | A few resources to get you started if this is your first Flutter project: 26 | 27 | - [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) 28 | - [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) 29 | 30 | For help getting started with Flutter, view our 31 | [online documentation](https://flutter.dev/docs), which offers tutorials, 32 | samples, guidance on mobile development, and a full API reference. 33 | 34 | 35 | ## How to install the app 36 | 37 | -Clone the project or download the zip file. 38 | 39 | -Open the project in android studio or vscode with flutter plugin. 40 | 41 | -Connect the android device or emulator. 42 | 43 | -Run the app from terminal or GUI. 44 | 45 | From the command line: 46 | 47 | -Enter cd 48 | (Replace with your application’s directory.) 49 | 50 | -Run flutter build apk --split-per-abi 51 | (The flutter build command defaults to --release.) 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /ios/Runner/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 8 | 12 | 19 | 23 | 27 | 32 | 36 | 37 | 38 | 39 | 40 | 41 | 43 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /assets/files/tim_sort.txt: -------------------------------------------------------------------------------- 1 | // The array is divided into blocks known as Run. These runs are merged using the combine function in merge sort.The size of the run array is in the range of 32 to 64. 2 | // The performance of merge function is maximised when the size of run is a power of 2. 3 | // We assume the size of run to 32. 4 | 5 | const int run = 32; 6 | 7 | // Function for tim sort. a[] is the input array and n is the size of the array. 8 | 9 | void timSort(int a[], int n) 10 | { 11 | int i,size,beginning,mid,end; 12 | 13 | for (i = 0; i < n; i+=run) 14 | insertionSort(a, i, minimum((i+31), (n-1))); // The (i+31) comes in the minimum function as the size of a run is 32. 15 | 16 | for (size = run; size < n; size = 2*size) 17 | { 18 | for (beginning = 0; beginning < n; beginning += 2*size) 19 | { 20 | mid = beginning + size - 1; 21 | end = minimum((beginning + 2*size - 1), (n-1)); 22 | 23 | merge(a, beginning, mid, end); 24 | } 25 | } 26 | } 27 | 28 | // Function to find the minimum of two numbers. 29 | 30 | int minimum(int a, int b) 31 | { 32 | if(a temp && j >= beginning) 49 | { 50 | a[j+1] = a[j]; 51 | j--; 52 | } 53 | a[j+1] = temp; 54 | } 55 | } 56 | 57 | //Function to merge the sorted runs 58 | 59 | void merge(int a[], int left, int mid, int right) 60 | { 61 | int len1 = mid - left + 1, len2 = right - mid; 62 | int beginning[len1], end[len2]; 63 | int i,j,k; 64 | for (i = 0; i < len1; i++) 65 | beginning[i] = a[left + i]; 66 | for (i = 0; i < len2; i++) 67 | end[i] = a[mid + 1 + i]; 68 | 69 | i = 0; 70 | j = 0; 71 | k = left; 72 | 73 | while (i < len1 && j < len2) 74 | { 75 | if (beginning[i] <= end[j]) 76 | { 77 | a[k] = beginning[i]; 78 | i++; 79 | } 80 | else 81 | { 82 | a[k] = end[j]; 83 | j++; 84 | } 85 | k++; 86 | } 87 | while (i < len1) 88 | { 89 | a[k] = beginning[i]; 90 | k++; 91 | i++; 92 | } 93 | 94 | while (j < len2) 95 | { 96 | a[k] = end[j]; 97 | k++; 98 | j++; 99 | } 100 | } -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "20x20", 5 | "idiom" : "iphone", 6 | "filename" : "Icon-App-20x20@2x.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "20x20", 11 | "idiom" : "iphone", 12 | "filename" : "Icon-App-20x20@3x.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "29x29", 17 | "idiom" : "iphone", 18 | "filename" : "Icon-App-29x29@1x.png", 19 | "scale" : "1x" 20 | }, 21 | { 22 | "size" : "29x29", 23 | "idiom" : "iphone", 24 | "filename" : "Icon-App-29x29@2x.png", 25 | "scale" : "2x" 26 | }, 27 | { 28 | "size" : "29x29", 29 | "idiom" : "iphone", 30 | "filename" : "Icon-App-29x29@3x.png", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "size" : "40x40", 35 | "idiom" : "iphone", 36 | "filename" : "Icon-App-40x40@2x.png", 37 | "scale" : "2x" 38 | }, 39 | { 40 | "size" : "40x40", 41 | "idiom" : "iphone", 42 | "filename" : "Icon-App-40x40@3x.png", 43 | "scale" : "3x" 44 | }, 45 | { 46 | "size" : "60x60", 47 | "idiom" : "iphone", 48 | "filename" : "Icon-App-60x60@2x.png", 49 | "scale" : "2x" 50 | }, 51 | { 52 | "size" : "60x60", 53 | "idiom" : "iphone", 54 | "filename" : "Icon-App-60x60@3x.png", 55 | "scale" : "3x" 56 | }, 57 | { 58 | "size" : "20x20", 59 | "idiom" : "ipad", 60 | "filename" : "Icon-App-20x20@1x.png", 61 | "scale" : "1x" 62 | }, 63 | { 64 | "size" : "20x20", 65 | "idiom" : "ipad", 66 | "filename" : "Icon-App-20x20@2x.png", 67 | "scale" : "2x" 68 | }, 69 | { 70 | "size" : "29x29", 71 | "idiom" : "ipad", 72 | "filename" : "Icon-App-29x29@1x.png", 73 | "scale" : "1x" 74 | }, 75 | { 76 | "size" : "29x29", 77 | "idiom" : "ipad", 78 | "filename" : "Icon-App-29x29@2x.png", 79 | "scale" : "2x" 80 | }, 81 | { 82 | "size" : "40x40", 83 | "idiom" : "ipad", 84 | "filename" : "Icon-App-40x40@1x.png", 85 | "scale" : "1x" 86 | }, 87 | { 88 | "size" : "40x40", 89 | "idiom" : "ipad", 90 | "filename" : "Icon-App-40x40@2x.png", 91 | "scale" : "2x" 92 | }, 93 | { 94 | "size" : "76x76", 95 | "idiom" : "ipad", 96 | "filename" : "Icon-App-76x76@1x.png", 97 | "scale" : "1x" 98 | }, 99 | { 100 | "size" : "76x76", 101 | "idiom" : "ipad", 102 | "filename" : "Icon-App-76x76@2x.png", 103 | "scale" : "2x" 104 | }, 105 | { 106 | "size" : "83.5x83.5", 107 | "idiom" : "ipad", 108 | "filename" : "Icon-App-83.5x83.5@2x.png", 109 | "scale" : "2x" 110 | }, 111 | { 112 | "size" : "1024x1024", 113 | "idiom" : "ios-marketing", 114 | "filename" : "Icon-App-1024x1024@1x.png", 115 | "scale" : "1x" 116 | } 117 | ], 118 | "info" : { 119 | "version" : 1, 120 | "author" : "xcode" 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: algobook 2 | description: A new Flutter application. 3 | 4 | # The following line prevents the package from being accidentally published to 5 | # pub.dev using `pub publish`. This is preferred for private packages. 6 | publish_to: 'none' # Remove this line if you wish to publish to pub.dev 7 | 8 | # The following defines the version and build number for your application. 9 | # A version number is three numbers separated by dots, like 1.2.43 10 | # followed by an optional build number separated by a +. 11 | # Both the version and the builder number may be overridden in flutter 12 | # build by specifying --build-name and --build-number, respectively. 13 | # In Android, build-name is used as versionName while build-number used as versionCode. 14 | # Read more about Android versioning at https://developer.android.com/studio/publish/versioning 15 | # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. 16 | # Read more about iOS versioning at 17 | # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html 18 | version: 1.0.0+1 19 | 20 | environment: 21 | sdk: ">=2.7.0 <3.0.0" 22 | 23 | dependencies: 24 | flutter: 25 | sdk: flutter 26 | url_launcher: ^5.4.0 27 | 28 | 29 | # The following adds the Cupertino Icons font to your application. 30 | # Use with the CupertinoIcons class for iOS style icons. 31 | cupertino_icons: ^0.1.3 32 | 33 | dev_dependencies: 34 | flutter_test: 35 | sdk: flutter 36 | flutter_launcher_icons: "^0.7.3" 37 | 38 | flutter_icons: 39 | android: "launcher_icon" 40 | ios: true 41 | image_path: "assets/icon.png" 42 | # For information on the generic Dart part of this file, see the 43 | # following page: https://dart.dev/tools/pub/pubspec 44 | 45 | # The following section is specific to Flutter. 46 | flutter: 47 | 48 | # The following line ensures that the Material Icons font is 49 | # included with your application, so that you can use the icons in 50 | # the material Icons class. 51 | uses-material-design: true 52 | 53 | # To add assets to your application, add an assets section, like this: 54 | assets: 55 | - assets/noAlgo.jpg 56 | - assets/files/ 57 | 58 | # An image asset can refer to one or more resolution-specific "variants", see 59 | # https://flutter.dev/assets-and-images/#resolution-aware. 60 | 61 | # For details regarding adding assets from package dependencies, see 62 | # https://flutter.dev/assets-and-images/#from-packages 63 | 64 | # To add custom fonts to your application, add a fonts section here, 65 | # in this "flutter" section. Each entry in this list should have a 66 | # "family" key with the font family name, and a "fonts" key with a 67 | # list giving the asset and other descriptors for the font. For 68 | # example: 69 | fonts: 70 | - family: SourceCodePro 71 | fonts: 72 | - asset: assets/fonts/SourceCodePro-Medium.ttf 73 | 74 | 75 | # - asset: fonts/Schyler-Italic.ttf 76 | # style: italic 77 | # - family: Trajan Pro 78 | # fonts: 79 | # - asset: fonts/TrajanPro.ttf 80 | # - asset: fonts/TrajanPro_Bold.ttf 81 | # weight: 700 82 | # 83 | # For details regarding fonts from package dependencies, 84 | # see https://flutter.dev/custom-fonts/#from-packages 85 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /assets/fonts/OFL.txt: -------------------------------------------------------------------------------- 1 | Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. 2 | 3 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 4 | This license is copied below, and is also available with a FAQ at: 5 | http://scripts.sil.org/OFL 6 | 7 | 8 | ----------------------------------------------------------- 9 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 10 | ----------------------------------------------------------- 11 | 12 | PREAMBLE 13 | The goals of the Open Font License (OFL) are to stimulate worldwide 14 | development of collaborative font projects, to support the font creation 15 | efforts of academic and linguistic communities, and to provide a free and 16 | open framework in which fonts may be shared and improved in partnership 17 | with others. 18 | 19 | The OFL allows the licensed fonts to be used, studied, modified and 20 | redistributed freely as long as they are not sold by themselves. The 21 | fonts, including any derivative works, can be bundled, embedded, 22 | redistributed and/or sold with any software provided that any reserved 23 | names are not used by derivative works. The fonts and derivatives, 24 | however, cannot be released under any other type of license. The 25 | requirement for fonts to remain under this license does not apply 26 | to any document created using the fonts or their derivatives. 27 | 28 | DEFINITIONS 29 | "Font Software" refers to the set of files released by the Copyright 30 | Holder(s) under this license and clearly marked as such. This may 31 | include source files, build scripts and documentation. 32 | 33 | "Reserved Font Name" refers to any names specified as such after the 34 | copyright statement(s). 35 | 36 | "Original Version" refers to the collection of Font Software components as 37 | distributed by the Copyright Holder(s). 38 | 39 | "Modified Version" refers to any derivative made by adding to, deleting, 40 | or substituting -- in part or in whole -- any of the components of the 41 | Original Version, by changing formats or by porting the Font Software to a 42 | new environment. 43 | 44 | "Author" refers to any designer, engineer, programmer, technical 45 | writer or other person who contributed to the Font Software. 46 | 47 | PERMISSION & CONDITIONS 48 | Permission is hereby granted, free of charge, to any person obtaining 49 | a copy of the Font Software, to use, study, copy, merge, embed, modify, 50 | redistribute, and sell modified and unmodified copies of the Font 51 | Software, subject to the following conditions: 52 | 53 | 1) Neither the Font Software nor any of its individual components, 54 | in Original or Modified Versions, may be sold by itself. 55 | 56 | 2) Original or Modified Versions of the Font Software may be bundled, 57 | redistributed and/or sold with any software, provided that each copy 58 | contains the above copyright notice and this license. These can be 59 | included either as stand-alone text files, human-readable headers or 60 | in the appropriate machine-readable metadata fields within text or 61 | binary files as long as those fields can be easily viewed by the user. 62 | 63 | 3) No Modified Version of the Font Software may use the Reserved Font 64 | Name(s) unless explicit written permission is granted by the corresponding 65 | Copyright Holder. This restriction only applies to the primary font name as 66 | presented to the users. 67 | 68 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 69 | Software shall not be used to promote, endorse or advertise any 70 | Modified Version, except to acknowledge the contribution(s) of the 71 | Copyright Holder(s) and the Author(s) or with their explicit written 72 | permission. 73 | 74 | 5) The Font Software, modified or unmodified, in part or in whole, 75 | must be distributed entirely under this license, and must not be 76 | distributed under any other license. The requirement for fonts to 77 | remain under this license does not apply to any document created 78 | using the Font Software. 79 | 80 | TERMINATION 81 | This license becomes null and void if any of the above conditions are 82 | not met. 83 | 84 | DISCLAIMER 85 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 86 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 87 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 88 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 89 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 90 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 91 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 92 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 93 | OTHER DEALINGS IN THE FONT SOFTWARE. 94 | -------------------------------------------------------------------------------- /lib/pages/DataStructures.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/services.dart' show rootBundle; 2 | 3 | Future getFileData(String path) async { 4 | return await rootBundle.loadString(path); 5 | } 6 | 7 | class Store { 8 | var searchAlgo = { 9 | 'bubble': 0, 10 | 'selection': 1, 11 | 'merge': 2, 12 | 'shell': 3, 13 | 'quick': 4, 14 | 'heap': 5, 15 | 'prim': 6, 16 | 'kruskal': 7, 17 | 'dfs': 8, 18 | 'bfs': 9, 19 | 'bellman': 10, 20 | 'ford': 10, 21 | 'flloyd': 11, 22 | 'warshall': 11, 23 | 'common': 12, 24 | 'longest': 12, 25 | 'rabin': 13, 26 | 'karp': 13, 27 | 'linear': 14, 28 | 'binary': 15, 29 | 'counting': 16, 30 | 'radix': 17, 31 | 'bucket': 18, 32 | 'dijkstra': 19, 33 | 'shortest path': 19, 34 | 'topological': 20, 35 | 'johnson': 21, 36 | 'bridge': 22, 37 | 'increasing': 23, 38 | 'subsequence': 12, 39 | 'knapsack': 24, 40 | 'paths': 26, 41 | 'grid': 26, 42 | 'sieve': 27, 43 | 'minimum': 25, 44 | 'partition': 25, 45 | 'eratosthenes': 27, 46 | 'monte': 28, 47 | 'carlo': 28, 48 | 'fermat': 29, 49 | 'primality': 29, 50 | 'knuth': 30, 51 | 'morris': 30, 52 | 'kmp': 30, 53 | 'pratt': 30, 54 | 'maximum': 31, 55 | 'subarray': 31, 56 | 'bit': 32, 57 | 'permutation': 35, 58 | 'round robin': 101, 59 | }; 60 | 61 | int searchResult(var _text) { 62 | var x; 63 | var y; 64 | x = _text.toLowerCase(); 65 | for (y in searchAlgo.keys) { 66 | if (x.contains(y)) { 67 | return searchAlgo[y]; 68 | } 69 | } 70 | return -1; 71 | } 72 | 73 | var diction = { 74 | 0: "B U B B L E\n S O R T { }", 75 | 1: "S E L E C T I O N\n S O R T { } ", 76 | 2: "M E R G E \n S O R T { }", 77 | 3: "S H E L L\n S O R T { }", 78 | 4: "Q U I C K\n S O R T { }", 79 | 5: "H E A P\n S O R T { }", 80 | 6: "P R I M' S\n A L G O R I T H M { }", 81 | 7: "K R U S K A L' S\n A L G O R I T H M { }", 82 | 8: "D F S { }", 83 | 9: "B F S { }", 84 | 10: "B E L L M A N-F O R D'S\n A L G O R I T H M { }", 85 | 11: "F L L O Y D \n W A R S H A L L { }", 86 | 12: "LONGEST COMMON\nSUBSEQUENCE { }", 87 | 13: "R A B I N-K A R P'S\nA L G O R I T H M { }", 88 | 14: "L I N E A R\nS E A R C H { }", 89 | 15: "B I N A R Y\nS E A R C H { }", 90 | 16: "C O U N T I N G\nS O R T { }", 91 | 17: "R A D I X\nS O R T { }", 92 | 18: "B U C K E T\nS O R T { }", 93 | 19: "D I J K S T R A'S\n A L G O R I T H M { }", 94 | 20: "T O P O L O G I C A L\nS O R T { }", 95 | 21: "J O H N S O N'S\nA L G O R I T H M { }", 96 | 22: "B R I D G E S'S\n I N G R A P H S { }", 97 | 23: "LONGEST INCREASING\nSUBSEQUENCE { }", 98 | 24: "K N A P S A C K\nP R O B L E M { }", 99 | 25: "M I N I M U M\n P A R T I T I O N { }", 100 | 26: "P A T H S I N\nA G R I D { }", 101 | 27: "S I E V E O F\nE R A T O S T H E N E S { }", 102 | 28: "M O N T E-C A R L O\nA L G O R I T H M { }", 103 | 29: "FERMAT'S\nPRIMALITY TEST { }", 104 | 30: "KNUTH MORRIS\nPRATT ALGORITHM { }", 105 | 31: "M A X I M U M\nS U B A R R A Y S U M { }", 106 | 32: "N U M B E R\n I N B I T S { }", 107 | 33: "S E T\nR E P R E S E N T A T I O N { }", 108 | 34: "G E N E R A T I N G\nS U B S E T S { }", 109 | 35: "G E N E R A T I N G\nP E R M U T A T I O N S { }", 110 | 111 | }; 112 | 113 | var dsUsed = { 114 | 0: "O(n\u00B2)", 115 | 1: "O(n\u00B2)", 116 | 2: "O(nlog(n))", 117 | 3: "O(n\u00B2)", 118 | 4: "O(nlog(n))", 119 | 5: "O(nlog(n))", 120 | 6: "O(ElogV)", 121 | 7: "O(ElogV)", 122 | 8: "O(V)", 123 | 9: "O(V)", 124 | 10: "O(V)", 125 | 11: "O(n\u00B3)", 126 | 12: "O(nlog(n))", 127 | 13: "O(mn)", 128 | 14: "O(n\u00B2)", 129 | 31: "O(n)", 130 | }; 131 | var code = { 132 | 0: 'assets/files/bubble_sort.txt', 133 | 1: 'assets/files/selection_sort.txt', 134 | 2:'assets/files/merge_sort.txt', 135 | 3: 'assets/files/shell_sort.txt', 136 | 4: 'assests/files/quick_sort.txt', 137 | 5: 'assets/files/heap_sort.txt', 138 | 6: 'assets/files/prim.txt', 139 | 7: 'assets/files/kruskals_algorithm.txt', 140 | 8: 'assets/files/DFS.txt', 141 | 9: 'assets/files/bfs.txt', 142 | 10:'assets/files/bellman_ford.txt', 143 | 11: 'assets/files/floyd_warshall.txt', 144 | 12: 'assets/files/LCS.txt', 145 | 13: 'assets/files/rabin_karp.txt', 146 | 14: 'assets/files/linear_search.txt', 147 | 15:'assets/files/binary_search.txt', 148 | 16:'assets/files/counting_sort.txt', 149 | 17: 'assets/files/radix_sort.txt', 150 | 18: 'assets/files/bucket_sort.txt', 151 | 19: 'assets/files/dijkstra.txt', 152 | 20: 'assets/files/topological_sort.txt', 153 | 21:'assets/files/bellman_ford.txt', 154 | 22: 'assets/files/bridges_in_a_graph.txt', 155 | 23:'assets/files/Longest_increasing_subsequence.txt', 156 | 24: 'assets/files/knapsack.txt', 157 | 25: 'assets/files/minimum_partition.txt', 158 | 26: 'assets/files/paths_in_a_grid.txt', 159 | 27: 'assets/files/Sieve_of_erastosthenes.txt', 160 | 28: 'assets/files/monto_carlo.txt', 161 | 29: 'assets/files/fermats.txt', 162 | 30:'assets/files/kmp.txt', 163 | 31:'assets/files/max_subarray_sum.txt', 164 | 32: 'assets/files/number_in_bits.txt', 165 | 33: 'assets/files/set_representation.txt', 166 | 34: 'assets/files/generating_subsets.txt', 167 | 35:'assets/files/generating_permutation.txt', 168 | 169 | }; 170 | } 171 | -------------------------------------------------------------------------------- /lib/pages/Algorithm.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/cupertino.dart'; 2 | import 'package:flutter/material.dart'; 3 | import 'package:algobook/pages/DataStructures.dart'; 4 | import 'package:flutter/services.dart' show rootBundle; 5 | import 'package:url_launcher/url_launcher.dart'; 6 | 7 | 8 | class AlgoExist extends StatefulWidget { 9 | 10 | final int num; 11 | AlgoExist({Key key, @required this.num }) : super(key: key); 12 | 13 | @override 14 | _AlgoExistState createState() => _AlgoExistState(this.num); 15 | } 16 | 17 | class _AlgoExistState extends State { 18 | final int num; 19 | String code; 20 | _AlgoExistState(this.num); 21 | Store a = new Store(); 22 | 23 | fetchAlgoFromFile(String path) async{ 24 | String algorithm; 25 | algorithm = await rootBundle.loadString(path); 26 | 27 | setState(() { 28 | code = algorithm; 29 | }); 30 | } 31 | @override 32 | void initState() { 33 | super.initState(); 34 | 35 | fetchAlgoFromFile(a.code[num]); 36 | WidgetsBinding.instance.addPostFrameCallback((_) => start(context)); 37 | } 38 | void start(BuildContext){asyncFunc(BuildContext);} 39 | asyncFunc(BuildContext) async { 40 | if (num < 0) { 41 | Navigator.pushReplacement( 42 | BuildContext, 43 | MaterialPageRoute(builder: (context) => AlgoPage(myIndex: num,)), 44 | ); 45 | } 46 | } 47 | 48 | @override 49 | Widget build(BuildContext context) { 50 | var defColor = Color(0xFF24A19C); 51 | 52 | return Scaffold( 53 | appBar: AppBar( 54 | elevation: 0, 55 | title: Text(''), 56 | backgroundColor: defColor, 57 | ), 58 | body: Container( 59 | width: MediaQuery.of(context).size.width, 60 | height: MediaQuery.of(context).size.height, 61 | child: SingleChildScrollView( 62 | child: Column( 63 | children: [ Container( 64 | decoration: BoxDecoration( 65 | borderRadius: BorderRadius.only(bottomRight:Radius.circular(50), bottomLeft:Radius.circular(50) ), 66 | color: Color(0xFF24A19C) 67 | ), 68 | height: MediaQuery.of(context).size.height*0.2, 69 | width: double.infinity, 70 | child: Text(a.diction[num], 71 | style: TextStyle( 72 | fontSize: 30, 73 | fontWeight: FontWeight.bold, 74 | color: Colors.white, 75 | 76 | ), 77 | textAlign: TextAlign.center,), 78 | ), 79 | SizedBox(height: 5,), 80 | 81 | Column( 82 | children: [ 83 | Container( 84 | padding: EdgeInsets.all(10), 85 | child: Wrap( 86 | children:[ 87 | Container( 88 | padding:EdgeInsets.all(10), 89 | child: Column( 90 | crossAxisAlignment: CrossAxisAlignment.start , 91 | children: [ 92 | Text("TIME COMPLEXITY", 93 | style: TextStyle( 94 | fontWeight: FontWeight.bold, 95 | fontSize: 10 96 | ),), 97 | Wrap( 98 | children: [ 99 | Text('${a.dsUsed[num]}'), 100 | ], 101 | ), 102 | ], 103 | )), 104 | SizedBox(height: 20,), 105 | Container( 106 | decoration: BoxDecoration( 107 | color: defColor.withOpacity(0.3), 108 | borderRadius: BorderRadius.all(Radius.circular(30)) 109 | ), 110 | padding: EdgeInsets.all(5), 111 | margin: EdgeInsets.all(5), 112 | child: SingleChildScrollView( 113 | child: Column( 114 | children: [ 115 | SizedBox(height: 10,), 116 | Text(code, 117 | style: TextStyle( 118 | fontSize: 15 , 119 | fontFamily: 'SourceCodePro' 120 | ), 121 | ), 122 | 123 | ], 124 | ), 125 | ), 126 | ), 127 | ] 128 | ), 129 | ), 130 | ], 131 | ), 132 | ]), 133 | ), 134 | ), 135 | ); 136 | } 137 | } 138 | 139 | 140 | class AlgoPage extends StatefulWidget { 141 | 142 | final int myIndex; 143 | AlgoPage({Key key, @required this.myIndex }) : super(key: key); 144 | 145 | @override 146 | _AlgoPageState createState() => _AlgoPageState(this.myIndex); 147 | } 148 | 149 | class _AlgoPageState extends State { 150 | 151 | final int myIndex; 152 | _AlgoPageState(this.myIndex); 153 | 154 | 155 | 156 | @override 157 | Widget build(BuildContext context) { 158 | var defColor=Color(0xFF24A19C); 159 | bool pressed = false; 160 | 161 | return Scaffold( 162 | appBar: AppBar( 163 | backgroundColor: defColor, 164 | elevation: 0, 165 | title: Text('Oops!', 166 | ) 167 | ), 168 | body: Container( 169 | color: Colors.white, 170 | height: MediaQuery.of(context).size.height, 171 | width: MediaQuery.of(context).size.width, 172 | child: Center( 173 | child: Column( 174 | crossAxisAlignment: CrossAxisAlignment.center, 175 | children: [ 176 | SizedBox(height: 50,), 177 | Text('Algorithm not found!', 178 | style: TextStyle( 179 | color: defColor, 180 | fontSize: 20, 181 | ),), 182 | SizedBox(height: 20,), 183 | Image.asset('assets/noAlgo.jpg'), 184 | Text('Help us add this algorithm\n by giving feedback!', 185 | 186 | style: TextStyle( 187 | color: defColor, 188 | fontFamily: 'SourceCodePro', 189 | fontSize: 15 190 | ),), 191 | SizedBox(height: 20,), 192 | InkWell( 193 | child: new Text('Go to Feedback', 194 | style: TextStyle( 195 | decoration: TextDecoration.underline, 196 | color: defColor, 197 | fontSize: 20, 198 | ),), 199 | onTap: () => launch('https://play.google.com/store/apps') 200 | ), 201 | SizedBox(height: 50,), 202 | 203 | ], 204 | ), 205 | ), 206 | ), 207 | ); 208 | } 209 | } -------------------------------------------------------------------------------- /pubspec.lock: -------------------------------------------------------------------------------- 1 | # Generated by pub 2 | # See https://dart.dev/tools/pub/glossary#lockfile 3 | packages: 4 | archive: 5 | dependency: transitive 6 | description: 7 | name: archive 8 | url: "https://pub.dartlang.org" 9 | source: hosted 10 | version: "2.0.13" 11 | args: 12 | dependency: transitive 13 | description: 14 | name: args 15 | url: "https://pub.dartlang.org" 16 | source: hosted 17 | version: "1.6.0" 18 | async: 19 | dependency: transitive 20 | description: 21 | name: async 22 | url: "https://pub.dartlang.org" 23 | source: hosted 24 | version: "2.4.2" 25 | boolean_selector: 26 | dependency: transitive 27 | description: 28 | name: boolean_selector 29 | url: "https://pub.dartlang.org" 30 | source: hosted 31 | version: "2.0.0" 32 | characters: 33 | dependency: transitive 34 | description: 35 | name: characters 36 | url: "https://pub.dartlang.org" 37 | source: hosted 38 | version: "1.0.0" 39 | charcode: 40 | dependency: transitive 41 | description: 42 | name: charcode 43 | url: "https://pub.dartlang.org" 44 | source: hosted 45 | version: "1.1.3" 46 | clock: 47 | dependency: transitive 48 | description: 49 | name: clock 50 | url: "https://pub.dartlang.org" 51 | source: hosted 52 | version: "1.0.1" 53 | collection: 54 | dependency: transitive 55 | description: 56 | name: collection 57 | url: "https://pub.dartlang.org" 58 | source: hosted 59 | version: "1.14.13" 60 | convert: 61 | dependency: transitive 62 | description: 63 | name: convert 64 | url: "https://pub.dartlang.org" 65 | source: hosted 66 | version: "2.1.1" 67 | crypto: 68 | dependency: transitive 69 | description: 70 | name: crypto 71 | url: "https://pub.dartlang.org" 72 | source: hosted 73 | version: "2.1.5" 74 | cupertino_icons: 75 | dependency: "direct main" 76 | description: 77 | name: cupertino_icons 78 | url: "https://pub.dartlang.org" 79 | source: hosted 80 | version: "0.1.3" 81 | fake_async: 82 | dependency: transitive 83 | description: 84 | name: fake_async 85 | url: "https://pub.dartlang.org" 86 | source: hosted 87 | version: "1.1.0" 88 | flutter: 89 | dependency: "direct main" 90 | description: flutter 91 | source: sdk 92 | version: "0.0.0" 93 | flutter_launcher_icons: 94 | dependency: "direct dev" 95 | description: 96 | name: flutter_launcher_icons 97 | url: "https://pub.dartlang.org" 98 | source: hosted 99 | version: "0.7.5" 100 | flutter_test: 101 | dependency: "direct dev" 102 | description: flutter 103 | source: sdk 104 | version: "0.0.0" 105 | flutter_web_plugins: 106 | dependency: transitive 107 | description: flutter 108 | source: sdk 109 | version: "0.0.0" 110 | image: 111 | dependency: transitive 112 | description: 113 | name: image 114 | url: "https://pub.dartlang.org" 115 | source: hosted 116 | version: "2.1.14" 117 | matcher: 118 | dependency: transitive 119 | description: 120 | name: matcher 121 | url: "https://pub.dartlang.org" 122 | source: hosted 123 | version: "0.12.8" 124 | meta: 125 | dependency: transitive 126 | description: 127 | name: meta 128 | url: "https://pub.dartlang.org" 129 | source: hosted 130 | version: "1.1.8" 131 | path: 132 | dependency: transitive 133 | description: 134 | name: path 135 | url: "https://pub.dartlang.org" 136 | source: hosted 137 | version: "1.7.0" 138 | petitparser: 139 | dependency: transitive 140 | description: 141 | name: petitparser 142 | url: "https://pub.dartlang.org" 143 | source: hosted 144 | version: "3.0.4" 145 | platform_detect: 146 | dependency: transitive 147 | description: 148 | name: platform_detect 149 | url: "https://pub.dartlang.org" 150 | source: hosted 151 | version: "1.4.0" 152 | plugin_platform_interface: 153 | dependency: transitive 154 | description: 155 | name: plugin_platform_interface 156 | url: "https://pub.dartlang.org" 157 | source: hosted 158 | version: "1.0.2" 159 | pub_semver: 160 | dependency: transitive 161 | description: 162 | name: pub_semver 163 | url: "https://pub.dartlang.org" 164 | source: hosted 165 | version: "1.4.4" 166 | sky_engine: 167 | dependency: transitive 168 | description: flutter 169 | source: sdk 170 | version: "0.0.99" 171 | source_span: 172 | dependency: transitive 173 | description: 174 | name: source_span 175 | url: "https://pub.dartlang.org" 176 | source: hosted 177 | version: "1.7.0" 178 | stack_trace: 179 | dependency: transitive 180 | description: 181 | name: stack_trace 182 | url: "https://pub.dartlang.org" 183 | source: hosted 184 | version: "1.9.5" 185 | stream_channel: 186 | dependency: transitive 187 | description: 188 | name: stream_channel 189 | url: "https://pub.dartlang.org" 190 | source: hosted 191 | version: "2.0.0" 192 | string_scanner: 193 | dependency: transitive 194 | description: 195 | name: string_scanner 196 | url: "https://pub.dartlang.org" 197 | source: hosted 198 | version: "1.0.5" 199 | term_glyph: 200 | dependency: transitive 201 | description: 202 | name: term_glyph 203 | url: "https://pub.dartlang.org" 204 | source: hosted 205 | version: "1.1.0" 206 | test_api: 207 | dependency: transitive 208 | description: 209 | name: test_api 210 | url: "https://pub.dartlang.org" 211 | source: hosted 212 | version: "0.2.17" 213 | typed_data: 214 | dependency: transitive 215 | description: 216 | name: typed_data 217 | url: "https://pub.dartlang.org" 218 | source: hosted 219 | version: "1.2.0" 220 | url_launcher: 221 | dependency: "direct main" 222 | description: 223 | name: url_launcher 224 | url: "https://pub.dartlang.org" 225 | source: hosted 226 | version: "5.5.0" 227 | url_launcher_linux: 228 | dependency: transitive 229 | description: 230 | name: url_launcher_linux 231 | url: "https://pub.dartlang.org" 232 | source: hosted 233 | version: "0.0.1+1" 234 | url_launcher_macos: 235 | dependency: transitive 236 | description: 237 | name: url_launcher_macos 238 | url: "https://pub.dartlang.org" 239 | source: hosted 240 | version: "0.0.1+7" 241 | url_launcher_platform_interface: 242 | dependency: transitive 243 | description: 244 | name: url_launcher_platform_interface 245 | url: "https://pub.dartlang.org" 246 | source: hosted 247 | version: "1.0.7" 248 | url_launcher_web: 249 | dependency: transitive 250 | description: 251 | name: url_launcher_web 252 | url: "https://pub.dartlang.org" 253 | source: hosted 254 | version: "0.1.2+1" 255 | vector_math: 256 | dependency: transitive 257 | description: 258 | name: vector_math 259 | url: "https://pub.dartlang.org" 260 | source: hosted 261 | version: "2.0.8" 262 | xml: 263 | dependency: transitive 264 | description: 265 | name: xml 266 | url: "https://pub.dartlang.org" 267 | source: hosted 268 | version: "4.2.0" 269 | yaml: 270 | dependency: transitive 271 | description: 272 | name: yaml 273 | url: "https://pub.dartlang.org" 274 | source: hosted 275 | version: "2.2.1" 276 | sdks: 277 | dart: ">=2.9.0-14.0.dev <3.0.0" 278 | flutter: ">=1.12.13+hotfix.5 <2.0.0" 279 | -------------------------------------------------------------------------------- /lib/pages/HomePage.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/cupertino.dart'; 2 | import 'package:flutter/material.dart'; 3 | import 'package:algobook/pages/BottomNavigationBarWidget.dart'; 4 | import 'package:algobook/pages/Algorithm.dart'; 5 | import 'package:algobook/pages/DataStructures.dart'; 6 | 7 | class MyHomePage extends StatefulWidget { 8 | MyHomePage({Key key, this.title}) : super(key: key); 9 | final String title; 10 | @override 11 | _MyHomePageState createState() => _MyHomePageState(); 12 | } 13 | 14 | class _MyHomePageState extends State { 15 | customTile(var _title, var _index) => GestureDetector( 16 | onTap: () { 17 | Navigator.push( 18 | context, 19 | MaterialPageRoute( 20 | builder: (context) => AlgoExist( 21 | num: _index, 22 | )), 23 | ); 24 | }, 25 | child: Container( 26 | margin: EdgeInsets.symmetric(horizontal: 35,vertical: 3), 27 | padding: EdgeInsets.all(5), 28 | width: double.infinity, 29 | decoration: BoxDecoration( 30 | border: Border( 31 | bottom: BorderSide(width: 1, color: Color(0xFF24A19C)))), 32 | child: Row( 33 | children: [ 34 | Icon(Icons.fiber_manual_record,color:Color(0xFF24A19C) ,size: 10,), 35 | Text( 36 | ' $_title', 37 | style: TextStyle(fontSize: 20, color: Color(0xFF24A19C)), 38 | ), 39 | ], 40 | ), 41 | ), 42 | ); 43 | heading(var _heading) => Container( 44 | margin: EdgeInsets.symmetric(horizontal: 10,vertical: 5), 45 | padding: EdgeInsets.all(4), 46 | decoration: BoxDecoration( 47 | borderRadius: BorderRadius.all(Radius.circular(50) ), 48 | color:Color(0xFF24A19C) , 49 | 50 | ), 51 | child: Text( 52 | 53 | '$_heading', 54 | style: TextStyle( 55 | letterSpacing: 1.2, 56 | fontSize: 12, fontWeight: FontWeight.bold,color: Colors.white), 57 | ), 58 | ); 59 | 60 | @override 61 | Widget build(BuildContext context) { 62 | Store A = new Store(); 63 | TextEditingController _controller = new TextEditingController(); 64 | void find(var n) { 65 | Navigator.push( 66 | context, 67 | MaterialPageRoute( 68 | builder: (context) => 69 | AlgoExist(num: A.searchResult(_controller.text))), 70 | ); 71 | } 72 | 73 | return Scaffold( 74 | body:SingleChildScrollView( 75 | child:Column( 76 | crossAxisAlignment: CrossAxisAlignment.start, 77 | children: [ 78 | Container( 79 | decoration: BoxDecoration( 80 | borderRadius: BorderRadius.only( 81 | bottomRight: Radius.circular(50), 82 | bottomLeft: Radius.circular(50)), 83 | color: Color(0xFF24A19C)), 84 | height: MediaQuery.of(context).size.height * 0.3, 85 | width: double.infinity, 86 | child: Center( 87 | child: Text( 88 | "A L G O R I T H M S \n H A N D B O O K { }", 89 | style: TextStyle( 90 | fontSize: 30, 91 | fontWeight: FontWeight.bold, 92 | color: Colors.white, 93 | ), 94 | textAlign: TextAlign.center, 95 | ), 96 | ), 97 | ), 98 | SizedBox(height: 8,), 99 | Center( 100 | child: Container( 101 | height: 50, 102 | width: MediaQuery.of(context).size.width - 60, 103 | padding: EdgeInsets.only(left: 10), 104 | decoration: BoxDecoration( 105 | borderRadius: BorderRadius.all(Radius.circular(50)), 106 | color: Colors.white..withOpacity(0.5), 107 | border: Border.all(color:Color(0xFF24A19C),width: 1.5 ), 108 | boxShadow: [ 109 | BoxShadow( 110 | color: Colors.grey, 111 | offset: Offset(1, 1), 112 | blurRadius: 3) 113 | ]), 114 | child: TextFormField( 115 | controller: _controller, 116 | textInputAction: TextInputAction.done, 117 | decoration: InputDecoration( 118 | border: OutlineInputBorder( 119 | borderRadius: BorderRadius.all(Radius.circular(50)), 120 | borderSide: BorderSide.none, 121 | ), 122 | hintText: ' Search', 123 | suffixIcon: GestureDetector( 124 | onTap: () { 125 | Navigator.push( 126 | context, 127 | MaterialPageRoute( 128 | builder: (context) => AlgoExist( 129 | num: A.searchResult(_controller.text))), 130 | ); 131 | }, 132 | child: Icon( 133 | Icons.search, 134 | color: Color(0xFF24A19C).withOpacity(0.8), 135 | ), 136 | ), 137 | hintStyle: new TextStyle( 138 | color: Color(0xFF24A19C).withOpacity(0.7), 139 | fontSize: 20), 140 | ), 141 | onFieldSubmitted: (term) { 142 | find(_controller.text); 143 | }, 144 | )), 145 | ), 146 | SizedBox(height: 8,), 147 | heading('SEARCHING'), 148 | customTile("Linear Search", 14), 149 | customTile("Binary Search", 15), 150 | //s 151 | heading('SORTING'), 152 | customTile("Bubble Sort", 0), 153 | customTile("Selection Sort", 1), 154 | customTile("Merge Sort", 2), 155 | customTile("Shell Sort", 3), 156 | customTile("Quick Sort", 4), 157 | customTile("Heap Sort", 5), 158 | customTile("Counting Sort", 16), 159 | customTile("Radix Sort", 17), 160 | customTile("Bucket Sort", 18), 161 | customTile("KMP Algorithm", 30), 162 | //s 163 | heading('GRAPHS'), 164 | 165 | customTile("DFS Algorithm", 8), 166 | customTile("BFS Algorithm", 9), 167 | customTile("Bellman Ford's Algorithm", 10), 168 | customTile("Flloyd - Warshall's", 11), 169 | customTile("Dijkstra's Algorithm", 19), 170 | customTile("Topological Sort", 20), 171 | customTile("Johnson's Algorithm", 21), 172 | customTile("Bridges in a graph", 22), 173 | heading('GREEDY ALGORITHMS'), 174 | customTile("Prim's Algorithm", 6), 175 | customTile("Kruskal's Algorithm", 7), 176 | //s 177 | heading('DYNAMIC PROGRAMMING'), 178 | customTile("Longest Common subsequence", 12), 179 | customTile("Longest Increasing subsequence", 23), 180 | customTile("Knapsack Problem", 24), 181 | customTile("Minimum partition algorithm", 25), 182 | customTile("Longest path in a matrix", 26), 183 | //s 184 | heading('BIT MANIPULATIONS'), 185 | customTile("Bit Representation of a number", 32), 186 | customTile("Set representation", 33), 187 | //s 188 | heading('OTHER ALGORITHMS'), 189 | customTile("Rabin-Karp's Algorithm", 13), 190 | customTile("Sieve of Eratosthenes", 27), 191 | customTile("Fermat's Primality test", 29), 192 | customTile("Monto-Carlo Algorithm", 28), 193 | customTile("Maximum Subarray Sum", 31), 194 | customTile("Generating subsets", 34), 195 | customTile("Generating permutations", 35) 196 | ], 197 | ), 198 | ) 199 | ); 200 | } 201 | } 202 | 203 | 204 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 11 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 12 | 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 13 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 14 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 15 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; 16 | /* End PBXBuildFile section */ 17 | 18 | /* Begin PBXCopyFilesBuildPhase section */ 19 | 9705A1C41CF9048500538489 /* Embed Frameworks */ = { 20 | isa = PBXCopyFilesBuildPhase; 21 | buildActionMask = 2147483647; 22 | dstPath = ""; 23 | dstSubfolderSpec = 10; 24 | files = ( 25 | ); 26 | name = "Embed Frameworks"; 27 | runOnlyForDeploymentPostprocessing = 0; 28 | }; 29 | /* End PBXCopyFilesBuildPhase section */ 30 | 31 | /* Begin PBXFileReference section */ 32 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 33 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 34 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 35 | 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 36 | 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 37 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 38 | 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 39 | 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 40 | 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; 41 | 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 42 | 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 43 | 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 44 | 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 45 | /* End PBXFileReference section */ 46 | 47 | /* Begin PBXFrameworksBuildPhase section */ 48 | 97C146EB1CF9000F007C117D /* Frameworks */ = { 49 | isa = PBXFrameworksBuildPhase; 50 | buildActionMask = 2147483647; 51 | files = ( 52 | ); 53 | runOnlyForDeploymentPostprocessing = 0; 54 | }; 55 | /* End PBXFrameworksBuildPhase section */ 56 | 57 | /* Begin PBXGroup section */ 58 | 9740EEB11CF90186004384FC /* Flutter */ = { 59 | isa = PBXGroup; 60 | children = ( 61 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 62 | 9740EEB21CF90195004384FC /* Debug.xcconfig */, 63 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, 64 | 9740EEB31CF90195004384FC /* Generated.xcconfig */, 65 | ); 66 | name = Flutter; 67 | sourceTree = ""; 68 | }; 69 | 97C146E51CF9000F007C117D = { 70 | isa = PBXGroup; 71 | children = ( 72 | 9740EEB11CF90186004384FC /* Flutter */, 73 | 97C146F01CF9000F007C117D /* Runner */, 74 | 97C146EF1CF9000F007C117D /* Products */, 75 | ); 76 | sourceTree = ""; 77 | }; 78 | 97C146EF1CF9000F007C117D /* Products */ = { 79 | isa = PBXGroup; 80 | children = ( 81 | 97C146EE1CF9000F007C117D /* Runner.app */, 82 | ); 83 | name = Products; 84 | sourceTree = ""; 85 | }; 86 | 97C146F01CF9000F007C117D /* Runner */ = { 87 | isa = PBXGroup; 88 | children = ( 89 | 97C146FA1CF9000F007C117D /* Main.storyboard */, 90 | 97C146FD1CF9000F007C117D /* Assets.xcassets */, 91 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, 92 | 97C147021CF9000F007C117D /* Info.plist */, 93 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, 94 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, 95 | 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, 96 | 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, 97 | ); 98 | path = Runner; 99 | sourceTree = ""; 100 | }; 101 | /* End PBXGroup section */ 102 | 103 | /* Begin PBXNativeTarget section */ 104 | 97C146ED1CF9000F007C117D /* Runner */ = { 105 | isa = PBXNativeTarget; 106 | buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; 107 | buildPhases = ( 108 | 9740EEB61CF901F6004384FC /* Run Script */, 109 | 97C146EA1CF9000F007C117D /* Sources */, 110 | 97C146EB1CF9000F007C117D /* Frameworks */, 111 | 97C146EC1CF9000F007C117D /* Resources */, 112 | 9705A1C41CF9048500538489 /* Embed Frameworks */, 113 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */, 114 | ); 115 | buildRules = ( 116 | ); 117 | dependencies = ( 118 | ); 119 | name = Runner; 120 | productName = Runner; 121 | productReference = 97C146EE1CF9000F007C117D /* Runner.app */; 122 | productType = "com.apple.product-type.application"; 123 | }; 124 | /* End PBXNativeTarget section */ 125 | 126 | /* Begin PBXProject section */ 127 | 97C146E61CF9000F007C117D /* Project object */ = { 128 | isa = PBXProject; 129 | attributes = { 130 | LastUpgradeCheck = 1020; 131 | ORGANIZATIONNAME = ""; 132 | TargetAttributes = { 133 | 97C146ED1CF9000F007C117D = { 134 | CreatedOnToolsVersion = 7.3.1; 135 | LastSwiftMigration = 1100; 136 | }; 137 | }; 138 | }; 139 | buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; 140 | compatibilityVersion = "Xcode 9.3"; 141 | developmentRegion = en; 142 | hasScannedForEncodings = 0; 143 | knownRegions = ( 144 | en, 145 | Base, 146 | ); 147 | mainGroup = 97C146E51CF9000F007C117D; 148 | productRefGroup = 97C146EF1CF9000F007C117D /* Products */; 149 | projectDirPath = ""; 150 | projectRoot = ""; 151 | targets = ( 152 | 97C146ED1CF9000F007C117D /* Runner */, 153 | ); 154 | }; 155 | /* End PBXProject section */ 156 | 157 | /* Begin PBXResourcesBuildPhase section */ 158 | 97C146EC1CF9000F007C117D /* Resources */ = { 159 | isa = PBXResourcesBuildPhase; 160 | buildActionMask = 2147483647; 161 | files = ( 162 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, 163 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, 164 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 165 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, 166 | ); 167 | runOnlyForDeploymentPostprocessing = 0; 168 | }; 169 | /* End PBXResourcesBuildPhase section */ 170 | 171 | /* Begin PBXShellScriptBuildPhase section */ 172 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { 173 | isa = PBXShellScriptBuildPhase; 174 | buildActionMask = 2147483647; 175 | files = ( 176 | ); 177 | inputPaths = ( 178 | ); 179 | name = "Thin Binary"; 180 | outputPaths = ( 181 | ); 182 | runOnlyForDeploymentPostprocessing = 0; 183 | shellPath = /bin/sh; 184 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; 185 | }; 186 | 9740EEB61CF901F6004384FC /* Run Script */ = { 187 | isa = PBXShellScriptBuildPhase; 188 | buildActionMask = 2147483647; 189 | files = ( 190 | ); 191 | inputPaths = ( 192 | ); 193 | name = "Run Script"; 194 | outputPaths = ( 195 | ); 196 | runOnlyForDeploymentPostprocessing = 0; 197 | shellPath = /bin/sh; 198 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; 199 | }; 200 | /* End PBXShellScriptBuildPhase section */ 201 | 202 | /* Begin PBXSourcesBuildPhase section */ 203 | 97C146EA1CF9000F007C117D /* Sources */ = { 204 | isa = PBXSourcesBuildPhase; 205 | buildActionMask = 2147483647; 206 | files = ( 207 | 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, 208 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, 209 | ); 210 | runOnlyForDeploymentPostprocessing = 0; 211 | }; 212 | /* End PBXSourcesBuildPhase section */ 213 | 214 | /* Begin PBXVariantGroup section */ 215 | 97C146FA1CF9000F007C117D /* Main.storyboard */ = { 216 | isa = PBXVariantGroup; 217 | children = ( 218 | 97C146FB1CF9000F007C117D /* Base */, 219 | ); 220 | name = Main.storyboard; 221 | sourceTree = ""; 222 | }; 223 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { 224 | isa = PBXVariantGroup; 225 | children = ( 226 | 97C147001CF9000F007C117D /* Base */, 227 | ); 228 | name = LaunchScreen.storyboard; 229 | sourceTree = ""; 230 | }; 231 | /* End PBXVariantGroup section */ 232 | 233 | /* Begin XCBuildConfiguration section */ 234 | 249021D3217E4FDB00AE95B9 /* Profile */ = { 235 | isa = XCBuildConfiguration; 236 | buildSettings = { 237 | ALWAYS_SEARCH_USER_PATHS = NO; 238 | CLANG_ANALYZER_NONNULL = YES; 239 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 240 | CLANG_CXX_LIBRARY = "libc++"; 241 | CLANG_ENABLE_MODULES = YES; 242 | CLANG_ENABLE_OBJC_ARC = YES; 243 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 244 | CLANG_WARN_BOOL_CONVERSION = YES; 245 | CLANG_WARN_COMMA = YES; 246 | CLANG_WARN_CONSTANT_CONVERSION = YES; 247 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 248 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 249 | CLANG_WARN_EMPTY_BODY = YES; 250 | CLANG_WARN_ENUM_CONVERSION = YES; 251 | CLANG_WARN_INFINITE_RECURSION = YES; 252 | CLANG_WARN_INT_CONVERSION = YES; 253 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 254 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 255 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 256 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 257 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 258 | CLANG_WARN_STRICT_PROTOTYPES = YES; 259 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 260 | CLANG_WARN_UNREACHABLE_CODE = YES; 261 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 262 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 263 | COPY_PHASE_STRIP = NO; 264 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 265 | ENABLE_NS_ASSERTIONS = NO; 266 | ENABLE_STRICT_OBJC_MSGSEND = YES; 267 | GCC_C_LANGUAGE_STANDARD = gnu99; 268 | GCC_NO_COMMON_BLOCKS = YES; 269 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 270 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 271 | GCC_WARN_UNDECLARED_SELECTOR = YES; 272 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 273 | GCC_WARN_UNUSED_FUNCTION = YES; 274 | GCC_WARN_UNUSED_VARIABLE = YES; 275 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 276 | MTL_ENABLE_DEBUG_INFO = NO; 277 | SDKROOT = iphoneos; 278 | SUPPORTED_PLATFORMS = iphoneos; 279 | TARGETED_DEVICE_FAMILY = "1,2"; 280 | VALIDATE_PRODUCT = YES; 281 | }; 282 | name = Profile; 283 | }; 284 | 249021D4217E4FDB00AE95B9 /* Profile */ = { 285 | isa = XCBuildConfiguration; 286 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; 287 | buildSettings = { 288 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 289 | CLANG_ENABLE_MODULES = YES; 290 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; 291 | ENABLE_BITCODE = NO; 292 | FRAMEWORK_SEARCH_PATHS = ( 293 | "$(inherited)", 294 | "$(PROJECT_DIR)/Flutter", 295 | ); 296 | INFOPLIST_FILE = Runner/Info.plist; 297 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 298 | LIBRARY_SEARCH_PATHS = ( 299 | "$(inherited)", 300 | "$(PROJECT_DIR)/Flutter", 301 | ); 302 | PRODUCT_BUNDLE_IDENTIFIER = com.example.algobook; 303 | PRODUCT_NAME = "$(TARGET_NAME)"; 304 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; 305 | SWIFT_VERSION = 5.0; 306 | VERSIONING_SYSTEM = "apple-generic"; 307 | }; 308 | name = Profile; 309 | }; 310 | 97C147031CF9000F007C117D /* Debug */ = { 311 | isa = XCBuildConfiguration; 312 | buildSettings = { 313 | ALWAYS_SEARCH_USER_PATHS = NO; 314 | CLANG_ANALYZER_NONNULL = YES; 315 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 316 | CLANG_CXX_LIBRARY = "libc++"; 317 | CLANG_ENABLE_MODULES = YES; 318 | CLANG_ENABLE_OBJC_ARC = YES; 319 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 320 | CLANG_WARN_BOOL_CONVERSION = YES; 321 | CLANG_WARN_COMMA = YES; 322 | CLANG_WARN_CONSTANT_CONVERSION = YES; 323 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 324 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 325 | CLANG_WARN_EMPTY_BODY = YES; 326 | CLANG_WARN_ENUM_CONVERSION = YES; 327 | CLANG_WARN_INFINITE_RECURSION = YES; 328 | CLANG_WARN_INT_CONVERSION = YES; 329 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 330 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 331 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 332 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 333 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 334 | CLANG_WARN_STRICT_PROTOTYPES = YES; 335 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 336 | CLANG_WARN_UNREACHABLE_CODE = YES; 337 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 338 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 339 | COPY_PHASE_STRIP = NO; 340 | DEBUG_INFORMATION_FORMAT = dwarf; 341 | ENABLE_STRICT_OBJC_MSGSEND = YES; 342 | ENABLE_TESTABILITY = YES; 343 | GCC_C_LANGUAGE_STANDARD = gnu99; 344 | GCC_DYNAMIC_NO_PIC = NO; 345 | GCC_NO_COMMON_BLOCKS = YES; 346 | GCC_OPTIMIZATION_LEVEL = 0; 347 | GCC_PREPROCESSOR_DEFINITIONS = ( 348 | "DEBUG=1", 349 | "$(inherited)", 350 | ); 351 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 352 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 353 | GCC_WARN_UNDECLARED_SELECTOR = YES; 354 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 355 | GCC_WARN_UNUSED_FUNCTION = YES; 356 | GCC_WARN_UNUSED_VARIABLE = YES; 357 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 358 | MTL_ENABLE_DEBUG_INFO = YES; 359 | ONLY_ACTIVE_ARCH = YES; 360 | SDKROOT = iphoneos; 361 | TARGETED_DEVICE_FAMILY = "1,2"; 362 | }; 363 | name = Debug; 364 | }; 365 | 97C147041CF9000F007C117D /* Release */ = { 366 | isa = XCBuildConfiguration; 367 | buildSettings = { 368 | ALWAYS_SEARCH_USER_PATHS = NO; 369 | CLANG_ANALYZER_NONNULL = YES; 370 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 371 | CLANG_CXX_LIBRARY = "libc++"; 372 | CLANG_ENABLE_MODULES = YES; 373 | CLANG_ENABLE_OBJC_ARC = YES; 374 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 375 | CLANG_WARN_BOOL_CONVERSION = YES; 376 | CLANG_WARN_COMMA = YES; 377 | CLANG_WARN_CONSTANT_CONVERSION = YES; 378 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 379 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 380 | CLANG_WARN_EMPTY_BODY = YES; 381 | CLANG_WARN_ENUM_CONVERSION = YES; 382 | CLANG_WARN_INFINITE_RECURSION = YES; 383 | CLANG_WARN_INT_CONVERSION = YES; 384 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 385 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 386 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 387 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 388 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 389 | CLANG_WARN_STRICT_PROTOTYPES = YES; 390 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 391 | CLANG_WARN_UNREACHABLE_CODE = YES; 392 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 393 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 394 | COPY_PHASE_STRIP = NO; 395 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 396 | ENABLE_NS_ASSERTIONS = NO; 397 | ENABLE_STRICT_OBJC_MSGSEND = YES; 398 | GCC_C_LANGUAGE_STANDARD = gnu99; 399 | GCC_NO_COMMON_BLOCKS = YES; 400 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 401 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 402 | GCC_WARN_UNDECLARED_SELECTOR = YES; 403 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 404 | GCC_WARN_UNUSED_FUNCTION = YES; 405 | GCC_WARN_UNUSED_VARIABLE = YES; 406 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 407 | MTL_ENABLE_DEBUG_INFO = NO; 408 | SDKROOT = iphoneos; 409 | SUPPORTED_PLATFORMS = iphoneos; 410 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; 411 | TARGETED_DEVICE_FAMILY = "1,2"; 412 | VALIDATE_PRODUCT = YES; 413 | }; 414 | name = Release; 415 | }; 416 | 97C147061CF9000F007C117D /* Debug */ = { 417 | isa = XCBuildConfiguration; 418 | baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; 419 | buildSettings = { 420 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 421 | CLANG_ENABLE_MODULES = YES; 422 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; 423 | ENABLE_BITCODE = NO; 424 | FRAMEWORK_SEARCH_PATHS = ( 425 | "$(inherited)", 426 | "$(PROJECT_DIR)/Flutter", 427 | ); 428 | INFOPLIST_FILE = Runner/Info.plist; 429 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 430 | LIBRARY_SEARCH_PATHS = ( 431 | "$(inherited)", 432 | "$(PROJECT_DIR)/Flutter", 433 | ); 434 | PRODUCT_BUNDLE_IDENTIFIER = com.example.algobook; 435 | PRODUCT_NAME = "$(TARGET_NAME)"; 436 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; 437 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 438 | SWIFT_VERSION = 5.0; 439 | VERSIONING_SYSTEM = "apple-generic"; 440 | }; 441 | name = Debug; 442 | }; 443 | 97C147071CF9000F007C117D /* Release */ = { 444 | isa = XCBuildConfiguration; 445 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; 446 | buildSettings = { 447 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 448 | CLANG_ENABLE_MODULES = YES; 449 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; 450 | ENABLE_BITCODE = NO; 451 | FRAMEWORK_SEARCH_PATHS = ( 452 | "$(inherited)", 453 | "$(PROJECT_DIR)/Flutter", 454 | ); 455 | INFOPLIST_FILE = Runner/Info.plist; 456 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 457 | LIBRARY_SEARCH_PATHS = ( 458 | "$(inherited)", 459 | "$(PROJECT_DIR)/Flutter", 460 | ); 461 | PRODUCT_BUNDLE_IDENTIFIER = com.example.algobook; 462 | PRODUCT_NAME = "$(TARGET_NAME)"; 463 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; 464 | SWIFT_VERSION = 5.0; 465 | VERSIONING_SYSTEM = "apple-generic"; 466 | }; 467 | name = Release; 468 | }; 469 | /* End XCBuildConfiguration section */ 470 | 471 | /* Begin XCConfigurationList section */ 472 | 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { 473 | isa = XCConfigurationList; 474 | buildConfigurations = ( 475 | 97C147031CF9000F007C117D /* Debug */, 476 | 97C147041CF9000F007C117D /* Release */, 477 | 249021D3217E4FDB00AE95B9 /* Profile */, 478 | ); 479 | defaultConfigurationIsVisible = 0; 480 | defaultConfigurationName = Release; 481 | }; 482 | 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { 483 | isa = XCConfigurationList; 484 | buildConfigurations = ( 485 | 97C147061CF9000F007C117D /* Debug */, 486 | 97C147071CF9000F007C117D /* Release */, 487 | 249021D4217E4FDB00AE95B9 /* Profile */, 488 | ); 489 | defaultConfigurationIsVisible = 0; 490 | defaultConfigurationName = Release; 491 | }; 492 | /* End XCConfigurationList section */ 493 | }; 494 | rootObject = 97C146E61CF9000F007C117D /* Project object */; 495 | } 496 | --------------------------------------------------------------------------------