Sunday, 6 October 2013

Binary Search program in C++

#include<iostream>
using namespace std;
#include<conio.h>
template<class T>
T binarysearch(T a[20],T n,T key)
{
                 int left,right,mid;
                 left=0;
                 right=n-1;
                 while(left<=right)
                 {
                                   mid=(left+right)/2;
                                   if(key==a[mid])
                                   return mid;
                                   else
                                   if(key<a[mid])
                                   right=mid-1;
                                   else
                                   left=mid+1;
                 }
                 return -1;
}
int main()
{
    int a[20],n,key,p,i;
    cout<<"\n enter number of elements:";
    cin>>n;
    cout<<"\n enter "<<n<<" values in ascending order :";
    for(i=0;i<n;i++)
    cin>>a[i];
    cout<<"\n enter the key value:";
    cin>>key;
    p=binarysearch(a,n,key);
    if(p!=-1)
    cout<<"\n the element is found at "<<p+1<<" position";
    else
    cout<<"\n search is unsucessful......";
    _getch();
    return 0;
}

Tuesday, 1 October 2013

Program to eliminate duplicates and print numbers in sequence

//input numbers are duplicate and not in sequence and you have to eliminate duplicate and print in sequence
//input - 1,2,3,4,5-10,6-14,11-25,20-30,13-16
//output - 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

import java.util.*;
class EliminateDuplicateAndExpandNumbersInSequence
{

public static void main(String[] args) {
printNumbers(args[0]);
}
static String[] split(String input)
{
return input.split("[,-]");
}
static void printNumbers(String data)
{
String inputs[] = split(data);
TreeSet<Integer> set = new TreeSet<Integer>();
for(String s : inputs )
set.add(Integer.parseInt(s));
int num1 = set.first();
int num2 = set.last();
for(int i = num1 ; i <= num2 ; i++)
{
if(i == num2)
System.out.println(i);
else
System.out.print(i + ",");
}
}
}

Program to expand the given numbers in sequence

//input numbers are unique and in sequence
//input - 1,2,3,4,5-10,11,12,13-16
//output - 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16

import java.util.*;
class ExpandNumberInSequence
{
public static void main(String[] args) {
printNumbers(args[0]);
}
static String[] split(String input)
{
return input.split("[,-]");
}
static void printNumbers(String data)
{
String inputs[] = split(data);
int num1 = Integer.parseInt(inputs[0]);
int num2 = Integer.parseInt(inputs[inputs.length-1]);
for(int i = num1; i <= num2 ;i++)
{
if(i == num2)
System.out.println(i);
else
System.out.print(i+",");
}
}
}

Program to print frequency count of all characters in the given word


import java.util.*;
class FrequencyCountOfChar
{
public static void main(String[] args) {
printAllCounts(args[0]);
}
static void printAllCounts(String input)
{
for( ; input.length() > 0 ; )
{
printFrequencyCount(input);
input = input.replace(""+input.charAt(0),"");
}
}
static void printFrequencyCount(String data)
{
int count = 0;
char temp = data.charAt(0);
for(int i = 0 ; i < data.length() ;i++)
{
if( temp == data.charAt(i) && i != (data.length() - 1))
{
count++;
}
if( temp == data.charAt(i) && i == (data.length() - 1))
{
count++;
System.out.println(temp + "=" + count);
}
else if( temp != data.charAt(i) && i == (data.length() - 1))
{
System.out.println(temp + "=" + count);
}
}
}
}

output :-

C:\Users\mulpk\Desktop>javac FrequencyCountOfChar.java

C:\Users\mulpk\Desktop>java FrequencyCountOfChar hellohi
h=2
e=1
l=2
o=1
i=1

Program to Format Date

// input - 20 jul 2013 (or) 20,jul,2013 (or) 20 ,jul ,2013 (or) 20, jul, 2013

// output - 2013-07-20

import java.util.*;
class DateFormatConversion
{
public static void main(String[] args) {
if(args.length != 1)
{
System.out.println("Enter only one argument ");
return;
}
System.out.println(getDate(args[0]));
}

static String getDate(String s)
{
s = s.replace(","," ");
String[] temp = splitString(s);
String result="";
temp[1] = getMonthNumber(temp[1]);
for(int i = temp.length - 1 ; i >= 0 ; i--)
{
if(i==0)
result += temp[i];
else
result += temp[i] + "-";
}
return result;
}

static String[] splitString(String s)
{
return s.split("[ ]+");
}

static String getMonthNumber(String s)
{
String months = "JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC";
int num = (months.indexOf(s.toUpperCase())/3)+1;
if(num < 10)
return "0" + num;
return "" + num;
}
}