├── 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->data- rchild=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 |
--------------------------------------------------------------------------------