30 Day Risk-Free Guarantee:
100% money back if you're unsatisfied.
Book (308 Pages):
  • 150 Programming Interview Questions and Solutions
  • Five Proven Approaches to Solving Tough Algorithm Questions
  • Ten Mistakes Candidates Make -- And How to Avoid Them
  • Steps to Prepare for Behavioral and Technical Questions
  • Interview War Stories: A View from the Interviewer's Side
  • Book Preview and More Info

Video (One Hour):
  • Watch CareerCup's founder perform a totally unscripted technical interview of a candidate.
  • Overview of what interviewers look for in software engineering jobs.
  • Technical questions with white-boarding coding where the candidate does well - and struggles.
  • Interviewer reviews with what went well and poorly.
  • Video Preview and More Info

Resume Review (24 - 48hr)
  • Get your resume reviewed by a trained engineering interviewer. More Info
All Products / Services


Express Prep Package (Book)
$29.99 for e-book | $32.45 for paperback
Buy E-Book Buy on Amazon


Standard Prep Package (E-Book & Video)
Emailed Instantly | $39.99
Buy Standard

Elite Prep Package (E-Book, Video & Resume)
Emailed Instantly | $99.99
Buy Elite
 



do inplace sorting of arrays in less then 0(n^2)

10


Snehal on March 20, 2010 |Edit | Edit

Quicksort - O(nlgn)

Anonymous on March 21, 2010 |Edit | Edit

@snehal do u mind writing code

snehal.kumar on March 21, 2010 |Edit | Edit

public class QuickSort {

public static void main(String[] args) {
int[] a = new int[]{5,3,2,6,4,1,3,7};
quicksort(a, 0, a.length-1);
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
}

public static void quicksort(int[] a, int left, int right){
if(left < 0 || right >= a.length)
return;

if(right <= left)
return;

int endValue = a[right];//Choose the last element as the partition element

int partitionIndex = partition(a, endValue, left, right-1);//Partition the array

if(a[partitionIndex] < endValue){
++partitionIndex;
}

swap(a, partitionIndex, right);

quicksort(a, left, partitionIndex-1);
quicksort(a, partitionIndex+1, right);
}

public static int partition(int a[], int endValue,int left,int right){
while(left < right){
if(a[left] < endValue){
left++;
continue;
}
if(a[right] >= endValue){
right--;
continue;
}
swap(a, left, right);
++left;
--right;
}
return left;
}

public static void swap(int[] a, int left, int right){
int temp = a[left];
a[left] = a[right];
a[right] = temp;
}
}

clrs on March 21, 2010 |Edit | Edit

worst case for quick sort is O(n^2)...
so pass through the array once and find the median and then do the quick sort..
running time is O(n) + O(nlogn) = O(nlogn).. correct me if am wrong

andy on March 22, 2010 |Edit | Edit

@clrs
How to find median in O(n)?

clrs on March 24, 2010 |Edit | Edit

@andy

use SELECT(k) algorithm that returns the k'th biggest number.. here we need n/2th biggest number. Can some one tell me if select algorithm is O(n) or O(n log n)?
I remember reading it is O(n)..

andy on March 25, 2010 |Edit | Edit

@clrs
Can u post the code/logic for SELECT(k) algorithm?

Sneha on March 22, 2010 |Edit | Edit

Another in place sorting method which takes O(nlogn) time is heapsort. It is slower than quicksort but it has the advantage that its worst case time is also O(nlogn)

Anonymous on April 20, 2010 |Edit | Edit

if Shellsort is inplace then it takes only O(n^1.5)

Anonymous on May 18, 2010 |Edit | Edit

Heap sort - it's inplace and O(nlog n)

Add a Text Comment | Add Runnable Code
Name:
Comment:

Writing Code? Surround your code with {{{ and }}} to preserve whitespace.








Amazon (1033)Bloomberg LP (403)Qualcomm (117)Adobe (88)Goldman Sachs (78)NetApp (49)IBM (43)Morgan Stanley (33)CapitalIQ (30)Sophos (25)Achieve Internet (23)Electronic Arts (19)Motorola (18)Research In Motion (17)Flipkart (16)
Microsoft (867)Google (141)NVIDIA (98)Yahoo (82)Epic Systems (69)Expedia (47)VMWare Inc (43)Apple (32)Cisco Systems (28)Facebook (23)Infosys (22)Agilent Technologies (19)Sage Software (17)Deshaw Inc (16)FlexTrade (15)
More Companies »
Software Engineer / Dev... (1062)Financial Software Deve... (170)Testing / Quality Assur... (56)Analyst (35)Virus Researcher (25)Field Sales (15)Developer Program Engin... (9)Front-end Software Engi... (6)MyJoB (5)area sales manager (4)Assistant (3)Cabin crew (2)Accountant (1)personnel (1)Intern (1)
Software Engineer in Te... (288)Program Manager (65)Development Support Eng... (47)INTERN(MSIDC) (28)Web Developer (18)System Administrator (10)Consultant (10)Production Engineer (5)Associate Technology L2 (5)AcquireKnowledge (4)Product Security Engine... (3)Solutions Architect (2)Gamer (1)mts (1)Fresh graduate interview (0)
More Job Titles »
Algorithm (1073)Terminology & Trivia (294)C (166)Object Oriented Design (159)Java (121)Testing (114)Arrays (101)Operating System (78)Database (70)Linked List (62)String Manipulation (56)Networking / Web / Inte... (44)Threads (36)Linux Kernel (33)PHP (22)
Coding (511)C++ (204)Behavioral (159)Data Structures (155)Experience (116)Brain Teasers (111)Computer Architecture &... (79)General Questions and C... (73)Trees and Graphs (69)Math & Computation (57)Application / UI Design (45)Ideas (38)System Design (35)Puzzles (30)Bit Manipulation (20)
More Topics »
CareerCup Official Interview Book Daily Questions Requests for Help Mock Interviews Video for Cracking the Coding Interview Job Placement Service CareerCup Blog
My Profile Edit Profile & Email Settings Sign Out