From b75a9054211154b25eba2fc8c76a525e4049ac39 Mon Sep 17 00:00:00 2001 From: Character004 Date: Sat, 6 Jun 2020 16:22:29 +0200 Subject: [PATCH] Lab 4 done --- DecisionMaker.java | 134 ++++++++++++ Exchange.java | 221 ++++++++++++++++++++ JSONParser.java | 39 ++++ LICENSE | 21 -- Main.java | 113 ++++++++++ Offer.java | 37 ++++ README.md | 2 - Wallet.java | 111 ++++++++++ bitcoin_stats.csv | 510 +++++++++++++++++++++++++++++++++++++++++++++ l1 | 6 - l2 | 2 - 11 files changed, 1165 insertions(+), 31 deletions(-) create mode 100644 DecisionMaker.java create mode 100644 Exchange.java create mode 100644 JSONParser.java delete mode 100644 LICENSE create mode 100644 Main.java create mode 100644 Offer.java delete mode 100644 README.md create mode 100644 Wallet.java create mode 100644 bitcoin_stats.csv delete mode 100644 l1 delete mode 100644 l2 diff --git a/DecisionMaker.java b/DecisionMaker.java new file mode 100644 index 00000000..a33ba58f --- /dev/null +++ b/DecisionMaker.java @@ -0,0 +1,134 @@ +import java.util.ArrayList; +import java.io.BufferedReader; +import java.io.FileReader; +import java.time.LocalDate; + +public class DecisionMaker +{ + private ArrayList historical; + private double expAverage; + + public class Quotation { + + private String date; + private double close, volume; + + public Quotation(String date, double close, double volume) { + this.date = date; + this.close = close; + this.volume = volume; + } + + public String getDate() { + return date; + } + + public double getClose() { + return close; + } + + public double getVolume() { + return volume; + } + + @Override + public String toString() { + return String.format("%s kurs: %.2f wolumen: %.2f", date, close, volume); + } + } + + //tworzenie agenta decyzyjnego w oparciu o dane historyczne i analizowany przedzial czasowy (data w formacie rrrr-mm-dd) + public DecisionMaker(String csvFile, String dateToAnalyzeFrom) throws Exception { + historical = new ArrayList<>(); + LocalDate today=LocalDate.now(), since = LocalDate.parse(dateToAnalyzeFrom); + + if(today.isBefore(since)) throw new IllegalArgumentException("Podana data musi by wczeniejsza od dzisiejszej!"); + else if (since.isBefore(LocalDate.of(2019, 1, 1))) throw new IllegalArgumentException("Podana data musi by pniejsza ni 1 stycznia 2020r."); + else { + + try { + BufferedReader buffer = new BufferedReader(new FileReader(csvFile)); + String [] dane; String line=""; + + while( (line=buffer.readLine()) != null) { + + dane = line.replaceAll("[^0-9.;-]", "").split(";"); + historical.add(new Quotation(dane[0], Double.parseDouble(dane[1]), Double.parseDouble(dane[2]))); + if(line.contains(dateToAnalyzeFrom)) break; + } + + buffer.close(); + } + catch (Exception e) { + System.out.println("Nie mona odnale pliku!"); + } + + expAverage=exponentialAverage(); + } + + } + + public ArrayList getHistorical() { + return historical; + } + + public double getExpAverage() { + return expAverage; + } + + public int makeDecision(double currentPrice) { + + double currentAverage = exponentialAverage(currentPrice); + + // jesli wykres sredniej exponencjalnej przecina sie z wykresem kursu waluty od dolu wysylany jest sygnal kupna + + if(expAverage=currentPrice && currentPrice > currentAverage) { + System.out.println("SPRZEDAJ"); + return -1; + } + + else { + System.out.println("CZEKAJ"); + return 0; + } + } + + // wyliczanie sredniej wazonej eksponencjalnej na podstawie danych historycznych + private double exponentialAverage() { + + int N = historical.size(); + double sum = 0, weights = 0; + + for(int i=0; i bids, asks; + + public Exchange(String name, String currency1, String currency2, int quantity) { + this.name = name; + this.currency1 = currency1; + this.currency2 = currency2; + this.bids = new ArrayList(); + this.asks = new ArrayList(); + createParser(); + fillData(quantity); + } + + public ArrayList getBids() { + return bids; + } + + public ArrayList getAsks() { + return asks; + } + + public void printOrderbook() { + + System.out.println("\n------------------------------------------------\n"+ name + " Exchange\t("+currency1+" - "+currency2+")"); + System.out.println("\nBIDS\n------------------------------------------------"); + + for(Offer bid : bids) { + System.out.println("BID: " + bid); + } + System.out.println("------------------------------------------------\n\nASKS\n------------------------------------------------"); + + + for(Offer ask : asks) { + System.out.println("ASK: " + ask); + } + System.out.println("------------------------------------------------"); + } + + public void update(int quantity) { + parser.updateData(); + fillData(quantity); + } + + private void fillData(int quantity) { + switch(name) { + case "BitBay": + bitbayData(quantity); + break; + case "CEX.IO": + cexioData(quantity); + break; + case "WhiteBit": + whitebitData(quantity); + break; + case "Ftx": + ftxData(quantity); + break; + default: + System.out.println("Nie obsugiwane rdo!"); + } + } + + private void bitbayData(int quantity) { + + String [] tab = parser.getData(); + int i=0, counter=0; + + tab[0]=tab[0].replace("bids", ""); + + for(; !tab[i].contains("asks"); i+=2) { + + if(counter < quantity) { + if(bids.size()==counter) bids.add(new Offer(Double.parseDouble(tab[i]),Double.parseDouble(tab[i+1]))); + else bids.set(counter, new Offer(Double.parseDouble(tab[i]),Double.parseDouble(tab[i+1]))); + counter++; + } + } + + counter = 0; + tab[i]=tab[i].replace("asks", ""); + + for(; i=0.01) { + + System.out.println(String.format("Na giedzie %s mona kupi %.8f %s za %s po kursie %.2f i sprzeda na giedzie %s po kursie %.2f zyskujc %.2f%s.", + names[j], current.getAmmount(), currency[2*i], currency[2*i+1], current.getPrice(), names[k], analyze.getPrice(), influence-cost, currency[2*i+1])); + + if(influence-cost>best) best=influence-cost; + } + } + } + + System.out.println(); + if(best>0)portfel.add(currency[2*i+1], best); + } + } + } + + private static void zadania1_3(double tax) { + + Exchange[][] gieldy = new Exchange[4][4]; + Wallet portfel = new Wallet(); + + for(int i=0; i0) gielda.update(1); + Offer buy=gielda.getAsks().get(0), sell=gielda.getBids().get(0); + + // decyzja jest podejmowana w oparciu o cene potencjalnego zakupu + int decision = agent.makeDecision(sell.getPrice()); + + if(decision==1) { + + double price = sell.getPrice()*sell.getAmmount()*(1+tax); + if(portfel.sell("USD", price)) { + portfel.add("BTC", sell.getAmmount(), price); + System.out.println(String.format("Zakupiono %.8fBTC", sell.getAmmount())); + } + } + else if(decision==(-1)) { + + double price = buy.getPrice()*sell.getAmmount()*(1-tax); + + if(portfel.sell("BTC", price)) { + + portfel.add("USD", sell.getAmmount()); + System.out.println(String.format("Sprzedano %.8fBTC", buy.getAmmount())); + + if(portfel.profitable(price, sell.getAmmount())) System.out.println("Sprzedano z zyskiem"); + else System.out.println("Sprzedano ze strat"); + } + } + Thread.sleep(5000); + } + System.out.println(portfel); + gielda.update(1); + portfel.getCurrentValue("BTC",gielda.getAsks().get(0).getPrice()); + } + + public static void main(String[] args) throws Exception { + + //zadania1_3(0.005); + zadanie4(10, 0.005); + } +} \ No newline at end of file diff --git a/Offer.java b/Offer.java new file mode 100644 index 00000000..0059ab24 --- /dev/null +++ b/Offer.java @@ -0,0 +1,37 @@ +public class Offer +{ + private double price; + private double ammount; + + public Offer() { + price = 0; + ammount = 0; + } + + public Offer(double price, double ammount) { + this.price = price; + this.ammount = ammount; + } + + public double getPrice() { + return price; + } + + public void setPrice(double price) { + this.price = price; + } + + public double getAmmount() { + return ammount; + } + + public void setAmmount(double ammount) { + this.ammount = ammount; + } + + @Override + public String toString() { + return String.format("[CENA: %-15.2f ILOSC: %-12.8f]", price, ammount); + } + +} diff --git a/README.md b/README.md deleted file mode 100644 index 6661a2ed..00000000 --- a/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# MSiD -System Analysis and Decision Support Methods diff --git a/Wallet.java b/Wallet.java new file mode 100644 index 00000000..10b28f34 --- /dev/null +++ b/Wallet.java @@ -0,0 +1,111 @@ +import java.util.ArrayList; + +public class Wallet { + + private class Fund { + + String currency; + double ammount; + + private Fund(String currency, double ammount) { + this.currency = currency; + this.ammount = ammount; + } + + @Override + public String toString() { + if(currency.equals("USD")) return String.format("%.2f", ammount)+currency; + else return String.format("%.8f", ammount)+currency; + } + } + + ArrayList funds; + ArrayList bought; + + public Wallet() { + funds = new ArrayList(); + bought = new ArrayList(); + } + + public Wallet(String currency, double startingFunds) { + + funds = new ArrayList(); + bought = new ArrayList(); + add(currency, startingFunds); + } + + public void add(String currency, double ammount) { + + boolean added = false; + for(Fund f : funds) { + + if(f.currency.equals(currency)) { + + f.ammount+=ammount; + added = true; + break; + } + + } + if(!added) funds.add(new Fund(currency, ammount)); + } + + public void add(String currency, double ammount, double boughtPrice) { + + add(currency, ammount); + bought.add(new Offer(boughtPrice,ammount)); + } + + public boolean sell(String currency, double ammount) { + + for(Fund f: funds) { + + if(f.currency.equals(currency) && f.ammount >= ammount) { + + f.ammount-=ammount; + System.out.println("\nSprzedano "+ammount+currency); + return true; + } + } + + System.out.println("Brak rodkw na wykonanie transakcji!"); + return false; + } + + public boolean profitable(double price, double ammount) { + + double sum = 0; + + for(Offer o : bought) { + + if(o.getPrice()<=price) sum+=o.getAmmount(); + } + + return sum>=ammount; + } + + public double getCurrentValue(String currency, double price) { + + double value=0.0; + + for(Fund f : funds) { + + if(f.currency=="USD") value+=f.ammount; + else if(f.currency=="BTC") value+=(f.ammount*price); + } + + return value; + } + + @Override + public String toString() { + + String output="WALLET\n"; + for(Fund f : funds) { + + output+=f+"\n"; + } + + return output; + } +} \ No newline at end of file diff --git a/bitcoin_stats.csv b/bitcoin_stats.csv new file mode 100644 index 00000000..5803bf84 --- /dev/null +++ b/bitcoin_stats.csv @@ -0,0 +1,510 @@ +2020-06-05;9829.9;12.35 +2020-06-04;9800.8;214.15 +2020-06-03;9665.4;177.46 +2020-06-02;9520;332.9 +2020-06-01;10194;241.85 +2020-05-31;9446.9;173.13 +2020-05-30;9700.1;180.32 +2020-05-29;9428.6;209.62 +2020-05-28;9564.3;392.57 +2020-05-27;9200;301.05 +2020-05-26;8855.4;196.89 +2020-05-25;8909.6;268.88 +2020-05-24;8721.9;266.73 +2020-05-23;9198.7;159.72 +2020-05-22;9178.4;185.93 +2020-05-21;9044.8;424.84 +2020-05-20;9527.6;429.66 +2020-05-19;9799.8;388.46 +2020-05-18;9742.2;358.04 +2020-05-17;9682.9;491.97 +2020-05-16;9384.8;250.0 +2020-05-15;9319.9;502.33 +2020-05-14;9788.1;725.74 +2020-05-13;9327.4;461.62 +2020-05-12;8837.4;334.94 +2020-05-11;8569.4;1042.46 +2020-05-10;8748.2;962.3 +2020-05-09;9544.5;387.93 +2020-05-08;9822.5;440.52 +2020-05-07;9996.6;754.32 +2020-05-06;9168.6;481.59 +2020-05-05;9035.3;329.31 +2020-05-04;8904;295.17 +2020-05-03;8916.9;392.66 +2020-05-02;8993.3;231.28 +2020-05-01;8838.1;366.96 +2020-04-30;8626.9;1101.0 +2020-04-29;8778.3;1160.99 +2020-04-28;7772.9;202.11 +2020-04-27;7786.9;286.61 +2020-04-26;7700;214.73 +2020-04-25;7541;204.3 +2020-04-24;7526.4;226.03 +2020-04-23;7492.8;513.86 +2020-04-22;7140.3;236.58 +2020-04-21;6872.9;242.28 +2020-04-20;6848.7;359.21 +2020-04-19;7136.5;172.12 +2020-04-18;7258.1;231.42 +2020-04-17;7036.4;255.56 +2020-04-16;7122;791.79 +2020-04-15;6647.4;201.44 +2020-04-14;6888.2;167.14 +2020-04-13;6863.1;328.5 +2020-04-12;6917.2;180.92 +2020-04-11;6900;110.59 +2020-04-10;6877.7;388.77 +2020-04-09;7310.9;296.88 +2020-04-08;7378.1;195.82 +2020-04-07;7214.7;380.09 +2020-04-06;7356.4;394.76 +2020-04-05;6792.9;232.16 +2020-04-04;6880.5;270.97 +2020-04-03;6743;323.53 +2020-04-02;6813.5;529.44 +2020-04-01;6635.8;336.31 +2020-03-31;6441.5;241.75 +2020-03-30;6403.6;375.3 +2020-03-29;5895.8;231.69 +2020-03-28;6271.6;317.48 +2020-03-27;6383.2;263.85 +2020-03-26;6771.4;232.07 +2020-03-25;6709.7;333.64 +2020-03-24;6781;435.3 +2020-03-23;6483.1;374.14 +2020-03-22;5849.9;347.26 +2020-03-21;6212.2;325.75 +2020-03-20;6220.9;653.28 +2020-03-19;6220.4;627.04 +2020-03-18;5411;405.8 +2020-03-17;5381.4;479.13 +2020-03-16;5057.4;1047.09 +2020-03-15;5422.9;383.12 +2020-03-14;5250;372.17 +2020-03-13;5686.9;1281.48 +2020-03-12;4920.5;1440.79 +2020-03-11;7942.1;177.14 +2020-03-10;7904.8;238.66 +2020-03-09;7947.7;313.55 +2020-03-08;8059.2;245.95 +2020-03-07;8923.1;115.26 +2020-03-06;9159.7;92.16 +2020-03-05;9086;193.33 +2020-03-04;8797.8;76.41 +2020-03-03;8796.1;74.65 +2020-03-02;8926.5;121.13 +2020-03-01;8572.8;80.52 +2020-02-29;8559;51.5 +2020-02-28;8698.3;164.31 +2020-02-27;8849.8;153.84 +2020-02-26;8821.3;234.45 +2020-02-25;9333.8;123.46 +2020-02-24;9690.6;138.25 +2020-02-23;9999.9;88.53 +2020-02-22;9700.7;42.52 +2020-02-21;9721;80.65 +2020-02-20;9606.2;114.64 +2020-02-19;9617.3;229.99 +2020-02-18;10178.8;199.58 +2020-02-17;9745.1;160.14 +2020-02-16;9950.9;91.13 +2020-02-15;9905;149.31 +2020-02-14;10375;68.63 +2020-02-13;10241;153.15 +2020-02-12;10381.6;101.27 +2020-02-11;10288.5;147.74 +2020-02-10;9879.5;134.78 +2020-02-09;10179.8;118.68 +2020-02-08;9928.9;83.28 +2020-02-07;9834.9;62.79 +2020-02-06;9773.2;115.93 +2020-02-05;9616;129.8 +2020-02-04;9193.6;89.85 +2020-02-03;9313.7;99.75 +2020-02-02;9350.9;74.96 +2020-02-01;9395;55.11 +2020-01-31;9356.7;109.44 +2020-01-30;9540.8;103.16 +2020-01-29;9306.5;113.94 +2020-01-28;9359.7;143.71 +2020-01-27;8912.1;121.7 +2020-01-26;8600;90.68 +2020-01-25;8367.7;46.5 +2020-01-24;8456.9;93.28 +2020-01-23;8424;137.09 +2020-01-22;8681.9;83.0 +2020-01-21;8760.7;86.41 +2020-01-20;8663.6;86.29 +2020-01-19;8718;184.58 +2020-01-18;8939.9;69.92 +2020-01-17;8914.8;135.28 +2020-01-16;8747.1;96.37 +2020-01-15;8818.2;166.11 +2020-01-14;8847.6;253.32 +2020-01-13;8133;56.19 +2020-01-12;8190;66.13 +2020-01-11;8053.8;106.28 +2020-01-10;8200;149.45 +2020-01-09;7855;104.68 +2020-01-08;8069.9;187.28 +2020-01-07;8189.5;176.67 +2020-01-06;7795.3;105.03 +2020-01-05;7387.4;69.14 +2020-01-04;7379.8;40.88 +2020-01-03;7351.3;174.0 +2020-01-02;6984.8;122.34 +2020-01-01;7238.2;64.92 +2019-12-31;7258.7;66.87 +2019-12-30;7277.3;60.2 +2019-12-29;7412.7;58.83 +2019-12-28;7326.2;69.62 +2019-12-27;7277;82.51 +2019-12-26;7231.7;77.39 +2019-12-25;7234.3;54.69 +2019-12-24;7268.1;116.83 +2019-12-23;7362.2;139.99 +2019-12-22;7537;125.15 +2019-12-21;7218.2;33.67 +2019-12-20;7236.8;71.08 +2019-12-19;7214.5;110.28 +2019-12-18;7331;355.05 +2019-12-17;6707.2;212.21 +2019-12-16;6956.5;159.85 +2019-12-15;7166.8;50.65 +2019-12-14;7136.7;80.33 +2019-12-13;7291.9;97.24 +2019-12-12;7264;86.03 +2019-12-11;7280.2;78.18 +2019-12-10;7309.3;114.16 +2019-12-09;7408;106.2 +2019-12-08;7584.9;61.27 +2019-12-07;7575.5;48.24 +2019-12-06;7599.9;108.96 +2019-12-05;7455.9;134.65 +2019-12-04;7258;220.98 +2019-12-03;7372.1;112.65 +2019-12-02;7392.9;145.15 +2019-12-01;7475.7;133.71 +2019-11-30;7617.9;160.03 +2019-11-29;7827.9;136.14 +2019-11-28;7517.2;114.76 +2019-11-27;7560;275.02 +2019-11-26;7249.9;148.63 +2019-11-25;7156.9;411.48 +2019-11-24;6985.2;202.48 +2019-11-23;7377.3;127.32 +2019-11-22;7339.9;617.5 +2019-11-21;7683.4;374.93 +2019-11-20;8147.8;68.05 +2019-11-19;8158;145.35 +2019-11-18;8240;130.96 +2019-11-17;8549.4;36.94 +2019-11-16;8510.2;32.12 +2019-11-15;8522.6;134.5 +2019-11-14;8693.3;80.8 +2019-11-13;8828.1;76.39 +2019-11-12;8849.9;93.53 +2019-11-11;8783.9;101.63 +2019-11-10;9068.3;72.98 +2019-11-09;8833.7;79.02 +2019-11-08;8838.3;233.15 +2019-11-07;9244.1;96.54 +2019-11-06;9402.9;55.82 +2019-11-05;9349.4;89.44 +2019-11-04;9408.8;97.72 +2019-11-03;9250.8;45.67 +2019-11-02;9332.7;52.95 +2019-11-01;9262.5;83.29 +2019-10-31;9183.2;177.2 +2019-10-30;9208.9;159.89 +2019-10-29;9439.3;137.59 +2019-10-28;9236.8;192.53 +2019-10-27;9538.8;296.38 +2019-10-26;9227;562.1 +2019-10-25;8652.3;302.31 +2019-10-24;7450;90.53 +2019-10-23;7487.5;285.17 +2019-10-22;8072.9;84.1 +2019-10-21;8249.5;90.1 +2019-10-20;8250;63.12 +2019-10-19;7984;61.72 +2019-10-18;7991.1;85.37 +2019-10-17;8106;87.8 +2019-10-16;8023.5;92.84 +2019-10-15;8189.2;95.11 +2019-10-14;8354.4;105.74 +2019-10-13;8320;83.33 +2019-10-12;8333.1;40.54 +2019-10-11;8292.6;100.67 +2019-10-10;8601.9;109.24 +2019-10-09;8613.1;143.36 +2019-10-08;8206.1;70.31 +2019-10-07;8208.9;191.99 +2019-10-06;7924.3;133.78 +2019-10-05;8154.9;46.02 +2019-10-04;8179.7;101.74 +2019-10-03;8267.4;128.15 +2019-10-02;8386.9;63.24 +2019-10-01;8347.5;147.57 +2019-09-30;8321.3;186.13 +2019-09-29;8080;71.0 +2019-09-28;8233.1;82.87 +2019-09-27;8222.5;134.79 +2019-09-26;8051.6;271.71 +2019-09-25;8467.3;174.09 +2019-09-24;8592;531.67 +2019-09-23;9712;97.62 +2019-09-22;10061.4;50.4 +2019-09-21;9999.3;70.02 +2019-09-20;10195.9;49.73 +2019-09-19;10280.4;193.1 +2019-09-18;10182.1;85.71 +2019-09-17;10192;73.48 +2019-09-16;10292.4;83.98 +2019-09-15;10299.9;26.35 +2019-09-14;10368.2;54.31 +2019-09-13;10373.4;86.13 +2019-09-12;10406.9;85.66 +2019-09-11;10170;123.14 +2019-09-10;10137.7;91.03 +2019-09-09;10311.4;98.71 +2019-09-08;10401.9;58.56 +2019-09-07;10468.4;85.1 +2019-09-06;10326.6;194.59 +2019-09-05;10575;74.23 +2019-09-04;10592.4;136.78 +2019-09-03;10647.2;172.68 +2019-09-02;10390;162.55 +2019-09-01;9755.3;53.69 +2019-08-31;9620.3;48.78 +2019-08-30;9603.9;66.27 +2019-08-29;9506.9;164.43 +2019-08-28;9741;208.05 +2019-08-27;10191.4;69.18 +2019-08-26;10356.7;135.09 +2019-08-25;10145;73.67 +2019-08-24;10143;109.25 +2019-08-23;10405.5;80.12 +2019-08-22;10154.3;124.96 +2019-08-21;10169.3;153.16 +2019-08-20;10742.4;130.19 +2019-08-19;10925.8;136.98 +2019-08-18;10338.9;75.63 +2019-08-17;10230;88.25 +2019-08-16;10365.5;227.55 +2019-08-15;10324.4;246.52 +2019-08-14;10054;227.97 +2019-08-13;10847.1;123.04 +2019-08-12;11418;75.34 +2019-08-11;11568.3;58.6 +2019-08-10;11316.5;157.02 +2019-08-09;11866.8;130.47 +2019-08-08;11995.1;120.95 +2019-08-07;11927;243.72 +2019-08-06;11471.2;325.41 +2019-08-05;11795.2;307.06 +2019-08-04;10995.3;212.41 +2019-08-03;10803.5;126.61 +2019-08-02;10536.2;144.57 +2019-08-01;10400.8;168.46 +2019-07-31;10094.7;155.91 +2019-07-30;9593.3;147.3 +2019-07-29;9520.6;129.18 +2019-07-28;9536.4;108.91 +2019-07-27;9485;317.53 +2019-07-26;9869.8;118.83 +2019-07-25;9905.3;126.11 +2019-07-24;9800;212.02 +2019-07-23;9870.3;221.41 +2019-07-22;10370;210.44 +2019-07-21;10574.4;192.17 +2019-07-20;10724.8;181.33 +2019-07-19;10547.3;204.44 +2019-07-18;10659.6;377.93 +2019-07-17;9693.9;382.02 +2019-07-16;9450.8;397.06 +2019-07-15;10846.8;467.9 +2019-07-14;10239.4;404.66 +2019-07-13;11346.7;298.26 +2019-07-12;11813.7;265.87 +2019-07-11;11378.4;399.77 +2019-07-10;12135.4;712.67 +2019-07-09;12578.1;460.64 +2019-07-08;12300.3;355.26 +2019-07-07;11450.1;164.17 +2019-07-06;11287.8;176.73 +2019-07-05;11016;277.4 +2019-07-04;11282.8;332.76 +2019-07-03;11988.6;542.14 +2019-07-02;10789.7;623.91 +2019-07-01;10579;746.14 +2019-06-30;10773.1;591.01 +2019-06-29;11891.2;675.48 +2019-06-28;12430.1;822.78 +2019-06-27;11235.2;1250.37 +2019-06-26;13140.3;1434.87 +2019-06-25;11805.7;486.81 +2019-06-24;10968.7;214.68 +2019-06-23;10869.6;285.61 +2019-06-22;10728.8;805.43 +2019-06-21;10169.2;430.91 +2019-06-20;9504.4;224.64 +2019-06-19;9278.7;170.62 +2019-06-18;9095.2;298.85 +2019-06-17;9290.4;246.72 +2019-06-16;8980.8;524.71 +2019-06-15;8820.5;177.88 +2019-06-14;8711.6;219.82 +2019-06-13;8298.2;149.22 +2019-06-12;8184.9;237.97 +2019-06-11;7962.9;161.21 +2019-06-10;8064.9;241.87 +2019-06-09;7697.3;185.55 +2019-06-08;7985;104.06 +2019-06-07;8084.8;212.61 +2019-06-06;7859;259.68 +2019-06-05;7866.9;306.4 +2019-06-04;7749.9;764.4 +2019-06-03;8224.1;327.74 +2019-06-02;8735;202.67 +2019-06-01;8633.9;148.48 +2019-05-31;8647.8;330.5 +2019-05-30;8377;497.69 +2019-05-29;8707.6;233.07 +2019-05-28;8702.2;159.32 +2019-05-27;8663.6;307.39 +2019-05-26;8613.8;438.96 +2019-05-25;8060;130.33 +2019-05-24;8021;248.34 +2019-05-23;7929.4;254.39 +2019-05-22;7686.8;253.82 +2019-05-21;7949.6;221.51 +2019-05-20;7950;450.56 +2019-05-19;8171.5;521.58 +2019-05-18;7380.4;300.99 +2019-05-17;7470.7;807.91 +2019-05-16;8020.6;778.76 +2019-05-15;8175.4;306.9 +2019-05-14;8005.3;685.5 +2019-05-13;7907.1;903.51 +2019-05-12;6944.9;774.82 +2019-05-11;7057.2;872.2 +2019-05-10;6421.1;412.76 +2019-05-09;6249.8;261.92 +2019-05-08;5982.6;167.14 +2019-05-07;5949.9;220.93 +2019-05-06;5760;263.08 +2019-05-05;5794.6;167.37 +2019-05-04;5821.5;379.94 +2019-05-03;5693.7;467.57 +2019-05-02;5436.6;169.0 +2019-05-01;5354.2;143.73 +2019-04-30;5317.1;289.57 +2019-04-29;5255.8;233.24 +2019-04-28;5272.5;137.7 +2019-04-27;5281;83.18 +2019-04-26;5243.3;310.15 +2019-04-25;5216.9;357.23 +2019-04-24;5497.7;297.32 +2019-04-23;5574.2;226.3 +2019-04-22;5405.8;223.53 +2019-04-21;5348.5;109.22 +2019-04-20;5365.4;110.37 +2019-04-19;5328.7;221.46 +2019-04-18;5355.7;150.95 +2019-04-17;5307.4;116.87 +2019-04-16;5287.3;490.85 +2019-04-15;5142.1;318.08 +2019-04-14;5247.8;69.43 +2019-04-13;5169;90.22 +2019-04-12;5166.7;134.71 +2019-04-11;5142;245.69 +2019-04-10;5396.2;200.01 +2019-04-09;5282.2;154.84 +2019-04-08;5345;224.49 +2019-04-07;5209.7;145.01 +2019-04-06;5117.7;164.93 +2019-04-05;5079.9;139.19 +2019-04-04;4950.4;250.37 +2019-04-03;4980;792.81 +2019-04-02;4962.1;794.67 +2019-04-01;4212;171.5 +2019-03-19;4038.7;3.91 +2019-03-18;4036.4;220.58 +2019-03-17;4033.1;116.24 +2019-03-16;4038.3;163.21 +2019-03-15;3980.7;147.86 +2019-03-14;3931;165.9 +2019-03-13;3932;175.98 +2019-03-12;3933.7;183.07 +2019-03-11;3921.8;158.48 +2019-03-10;3953.9;126.52 +2019-03-09;3973.2;140.98 +2019-03-08;3893;179.08 +2019-03-07;3898.9;161.85 +2019-03-06;3903.8;141.21 +2019-03-05;3915.2;233.57 +2019-03-04;3785.5;473.09 +2019-03-03;3865.4;99.75 +2019-03-02;3876;73.92 +2019-03-01;3860.2;133.19 +2019-02-28;3847.9;156.01 +2019-02-27;3850.8;203.5 +2019-02-26;3850.9;139.46 +2019-02-25;3869.8;226.1 +2019-02-24;3765.5;836.87 +2019-02-23;4111;242.37 +2019-02-22;3943.5;6.4 +2019-02-21;3928.6;311.49 +2019-02-20;3994.8;155.82 +2019-02-19;3945.6;230.36 +2019-02-18;3904.1;578.5 +2019-02-17;3668;482.65 +2019-02-16;3697.2;99.96 +2019-02-15;3682.3;133.62 +2019-02-14;3677.2;159.07 +2019-02-13;3684.9;110.31 +2019-02-12;3696;140.44 +2019-02-11;3698.9;169.32 +2019-02-10;3751.9;143.12 +2019-02-09;3709.5;176.33 +2019-02-08;3722.3;413.35 +2019-02-07;3481.8;143.79 +2019-02-06;3482.3;179.22 +2019-02-05;3525;95.88 +2019-02-04;3505.9;94.5 +2019-02-03;3495.1;136.25 +2019-02-02;3544.6;95.27 +2019-02-01;3501.6;159.65 +2019-01-31;3493.6;180.29 +2019-01-30;3505.5;182.88 +2019-01-29;3459.4;167.94 +2019-01-28;3493;360.92 +2019-01-27;3598.8;199.62 +2019-01-26;3613.5;248.4 +2019-01-25;3612;182.38 +2019-01-24;3613;183.25 +2019-01-23;3590;208.28 +2019-01-22;3623.6;351.52 +2019-01-21;3597.9;175.1 +2019-01-20;3602;294.65 +2019-01-19;3738.5;252.97 +2019-01-18;3682.4;493.8 +2019-01-17;3709.8;552.9 +2019-01-16;3672.6;396.3 +2019-01-15;3670.7;252.59 +2019-01-14;3721.8;349.0 +2019-01-13;3590.5;271.68 +2019-01-12;3720;155.34 +2019-01-11;3751.9;267.32 +2019-01-10;3715;478.57 +2019-01-09;4048.8;173.79 +2019-01-08;4044.4;230.58 +2019-01-07;4045.3;374.03 +2019-01-06;4086.1;312.46 +2019-01-05;3865.1;191.18 +2019-01-04;3911.7;178.48 +2019-01-03;3883.1;206.13 +2019-01-02;3971.5;271.87 +2019-01-01;3942.7;191.01 \ No newline at end of file diff --git a/l1 b/l1 deleted file mode 100644 index 76140c26..00000000 --- a/l1 +++ /dev/null @@ -1,6 +0,0 @@ -1) Sforkować repozytorium na Wasze konto -2) Przejść na Waszego forka -3) Ściągnąć wasze repo na dysk i powiązać z repozytorium zdalnym (remote) -4) Napisać sortowanie liczb w dwoma znanymi Wam metodami(język jak ustalaliśmy na laboratorium). Starajcie się napisać funkcje w sposób zwarty, bez żadnych komentarzy czy śmieci w kodzie, w sposób optymalny, z użyciem najlepszych, znanych Wam struktur danych i metod przeglądania ich. Tworząc rozwiązania pracujcie z gitem- dodawajcie na stage, twórzcie commity. Pracujcie na branchu, stwórzcie na potrzeby zadania brancha i nazwijcie go np SortingMethods -5) wypchnijcie zmiany lokalne na repo zdalne -6) utwórzcie merge requesta z brancha SortingMethods do brancha master mojego repo (oryginalnego repo, z którego powstał fork) i nazwijcie go L1. diff --git a/l2 b/l2 deleted file mode 100644 index 89f8155e..00000000 --- a/l2 +++ /dev/null @@ -1,2 +0,0 @@ -Rozwinięcie zadania z listy 1. Do wybranych algorytmów sortowania z listy 1 dobrać 2 inne i zaimplementować je. Napisać funkcję służącą do porównywania algorytmów sortowania, która przyjmuje funkcję i mierzy czas / czasy sortowania. Za jej pomocą porównać algorytmy sortowania. -Pracujcie z gitem, proponuję zrobić osobnego brancha, nazwać go SortingComparison i w nim pracować. Na koniec - jak poprzednio - wysłać na repozytorium remote i wystawić pull request do mojego repozytorium, z którego pierwotnie forkowaliście. Nie akceptuję plików dodanych do gita przez „upload”. Wysyłanie plików na wasze remote repo odbywa się poprzez git push.