// Lab 8, Working with structs
// Programmer : Maiar Khattab
// Editor(s) used : Code Blocks 13.12
// Compiler(s) used : Code Blocks 13.12
#include<iostream>
using std::cout;
using std::endl;
#include<cstdlib>
//struct def
struct tod
{
int hour;// the hr , 0-23
int minute;// the min, 0-59
int second;//the sec, 0-59
char descr [32];//the description of the time of day
};
//void printTod(const tod&);
int main ()
{
cout << "Lab 8, Working With structs\n";
cout << "Programmer: Maiar Khattab\n";
cout << "Editor(s) used: Code Blocks 13.12\n";
cout << "Compiler(s) used: Code Blocks 13.12\n";
cout << "File: " << __FILE__ << endl;
cout << "Complied: " << __DATE__ << " at " << __TIME__ << endl << endl;
tod theTime[] = {{12,0,0, "noon"},
{0,0,0," midnight"},
{6,00,00," supper "},
{11,30,0,"bedtime"}};
for(int i; i <5; i++)
{
char descr [32];
cout << theTime[i].descr << " is " << theTime[i].hour << ':'
<< theTime[i].minute << ":" << theTime[i].second << endl;
}
}
IC8vIExhYiA4LCBXb3JraW5nIHdpdGggc3RydWN0cwovLyBQcm9ncmFtbWVyIDogTWFpYXIgS2hhdHRhYgovLyBFZGl0b3IocykgdXNlZCA6IENvZGUgQmxvY2tzIDEzLjEyCi8vIENvbXBpbGVyKHMpIHVzZWQgOiBDb2RlIEJsb2NrcyAxMy4xMgoKI2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIHN0ZDo6Y291dDsKdXNpbmcgc3RkOjplbmRsOwoKI2luY2x1ZGU8Y3N0ZGxpYj4KCi8vc3RydWN0IGRlZgpzdHJ1Y3QgdG9kCnsKaW50IGhvdXI7Ly8gdGhlIGhyICwgMC0yMwppbnQgbWludXRlOy8vIHRoZSBtaW4sIDAtNTkKaW50IHNlY29uZDsvL3RoZSBzZWMsIDAtNTkKY2hhciBkZXNjciBbMzJdOy8vdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSB0aW1lIG9mIGRheQoKfTsKLy92b2lkIHByaW50VG9kKGNvbnN0IHRvZCYpOwppbnQgbWFpbiAoKQp7CiAgY291dCA8PCAiTGFiIDgsIFdvcmtpbmcgV2l0aCBzdHJ1Y3RzXG4iOwogIGNvdXQgPDwgIlByb2dyYW1tZXI6IE1haWFyIEtoYXR0YWJcbiI7CiAgY291dCA8PCAiRWRpdG9yKHMpIHVzZWQ6IENvZGUgQmxvY2tzIDEzLjEyXG4iOwogIGNvdXQgPDwgIkNvbXBpbGVyKHMpIHVzZWQ6IENvZGUgQmxvY2tzIDEzLjEyXG4iOwogIGNvdXQgPDwgIkZpbGU6ICIgPDwgX19GSUxFX18gPDwgZW5kbDsKICBjb3V0IDw8ICJDb21wbGllZDogIiA8PCBfX0RBVEVfXyA8PCAiIGF0ICIgPDwgX19USU1FX18gPDwgZW5kbCA8PCBlbmRsOwoKICAgICAgICAgICAgdG9kIHRoZVRpbWVbXSA9ICB7ezEyLDAsMCwgIm5vb24ifSwKICAgICAgICAgICAgezAsMCwwLCIgbWlkbmlnaHQifSwKICAgICAgICAgICAgezYsMDAsMDAsIiBzdXBwZXIgIn0sCiAgICAgICAgICAgIHsxMSwzMCwwLCJiZWR0aW1lIn19OwogICAgICAgICAgCiAgICAgICAgICBmb3IoaW50IGk7IGkgPDU7IGkrKykKICAgICAgICAgIHsKICAgICAgICAgICAgIGNoYXIgZGVzY3IgWzMyXTsgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICBjb3V0IDw8IHRoZVRpbWVbaV0uZGVzY3IgPDwgIiBpcyAiIDw8IHRoZVRpbWVbaV0uaG91ciA8PCAnOicgCiAgICAgICAgICAgIDw8IHRoZVRpbWVbaV0ubWludXRlIDw8ICI6IiA8PCB0aGVUaW1lW2ldLnNlY29uZCA8PCBlbmRsOyAKICAgICAgICAgIH0KfQogICAgICAKICA=
aW1wb3J0IGphdmEudXRpbC5SYW5kb207CmltcG9ydCBqYXZhLnV0aWwuU2Nhbm5lcjsKcHVibGljIGNsYXNzIE1lcmdlU29ydAp7CnB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCnsKaW50IGFbXT0gbmV3IGludFsxMDAwMDBdOwpTY2FubmVyIGluID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKbG9uZyBzdGFydCwgZW5kOwpTeXN0ZW0ub3V0LnByaW50KCZxdW90O0VudGVyIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgdG8gYmUgc29ydGVkOiAmcXVvdDspOwppbnQgbiA9IGluLm5leHRJbnQoKTsKUmFuZG9tIHJhbmQ9IG5ldyBSYW5kb20oKTsKZm9yKGludCBpPTA7aSZsdDtuO2krKykKYVtpXT1yYW5kLm5leHRJbnQoMjAwMCk7ClN5c3RlbS5vdXQucHJpbnRsbigmcXVvdDtBcnJheSBlbGVtZW50cyB0byBiZSBzb3J0ZWQgYXJlOiZxdW90Oyk7CmZvcihpbnQgaT0wOyBpJmx0O247IGkrKykKU3lzdGVtLm91dC5wcmludGxuKGFbaV0pOwpzdGFydD1TeXN0ZW0ubmFub1RpbWUoKTsKbWVyZ2Vzb3J0KGEsMCxuLTEpOwplbmQ9U3lzdGVtLm5hbm9UaW1lKCk7ClN5c3RlbS5vdXQucHJpbnRsbigmcXVvdDtcblRoZSBzb3J0ZWQgZWxlbWVudHMgYXJlOiAmcXVvdDspOwpmb3IoaW50IGk9MDsgaSZsdDtuOyBpKyspClN5c3RlbS5vdXQucHJpbnRsbihhW2ldKTsKU3lzdGVtLm91dC5wcmludGxuKCZxdW90O1xuVGhlIHRpbWUgdGFrZW4gdG8gc29ydCBpcyAmcXVvdDsrKGVuZC1zdGFydCkrJnF1b3Q7bnMmcXVvdDspOwp9CnN0YXRpYyB2b2lkIG1lcmdlc29ydChpbnQgYVtdLCBpbnQgbG93LCBpbnQgaGlnaCkKewppbnQgbWlkOwppZihsb3cgJmx0OyBoaWdoKQp7Cm1pZCA9IChsb3craGlnaCkvMjsKbWVyZ2Vzb3J0KGEsIGxvdywgbWlkKTsKbWVyZ2Vzb3J0KGEsIG1pZCsxLCBoaWdoKTsKbWVyZ2UoYSwgbG93LCBtaWQsIGhpZ2gpOwp9Cn0Kc3RhdGljIHZvaWQgbWVyZ2UoaW50IGFbXSwgaW50IGxvdywgaW50IG1pZCwgaW50IGhpZ2gpCnsKaW50IGksIGosIGgsIGssIGJbXT0gbmV3IGludFsxMDAwMDBdOwpoPWxvdzsgaT1sb3c7IGo9bWlkKzE7CndoaWxlKChoJmx0Oz1taWQpICZhbXA7JmFtcDsgKGombHQ7PWhpZ2gpKQp7aWYoYVtoXSAmbHQ7IGFbal0pCnsKYltpXT1hW2hdOwpoPWgrMTsKfQplbHNlCnsKYltpXSA9IGFbal07Cmo9aisxOwp9CmkgPSBpKzE7Cn0KaWYoaCAmZ3Q7IG1pZCkKewpmb3Ioaz1qOyBrJmx0Oz1oaWdoOyBrKyspCnsKYltpXT1hW2tdOwppPSBpKzE7Cn0KfQplbHNlCnsKZm9yKGs9aDtrJmx0Oz1taWQ7aysrKQp7CmJbaV09YVtrXTsKaT0gaSsxOwp9Cn0KZm9yKGs9bG93OyBrJmx0Oz0gaGlnaDsgaysrKQphW2tdID0gYltrXTsKfQp9Cg==
import java.util.Random;
import java.util.Scanner;
public class MergeSort
{
public static void main(String[] args)
{
int a[]= new int[100000];
Scanner in = new Scanner(System.in);
long start, end;
System.out.print("Enter the number of elements to be sorted: ");
int n = in.nextInt();
Random rand= new Random();
for(int i=0;i<n;i++)
a[i]=rand.nextInt(2000);
System.out.println("Array elements to be sorted are:");
for(int i=0; i<n; i++)
System.out.println(a[i]);
start=System.nanoTime();
mergesort(a,0,n-1);
end=System.nanoTime();
System.out.println("\nThe sorted elements are: ");
for(int i=0; i<n; i++)
System.out.println(a[i]);
System.out.println("\nThe time taken to sort is "+(end-start)+"ns");
}
static void mergesort(int a[], int low, int high)
{
int mid;
if(low < high)
{
mid = (low+high)/2;
mergesort(a, low, mid);
mergesort(a, mid+1, high);
merge(a, low, mid, high);
}
}
static void merge(int a[], int low, int mid, int high)
{
int i, j, h, k, b[]= new int[100000];
h=low; i=low; j=mid+1;
while((h<=mid) && (j<=high))
{if(a[h] < a[j])
{
b[i]=a[h];
h=h+1;
}
else
{
b[i] = a[j];
j=j+1;
}
i = i+1;
}
if(h > mid)
{
for(k=j; k<=high; k++)
{
b[i]=a[k];
i= i+1;
}
}
else
{
for(k=h;k<=mid;k++)
{
b[i]=a[k];
i= i+1;
}
}
for(k=low; k<= high; k++)
a[k] = b[k];
}
}