Arranging an array so that duplicates will turn up first


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Arranging an array so that duplicates will turn up first
# 1  
Old 01-24-2008
Arranging an array so that duplicates will turn up first

Hi All,

I have an array that contains duplicates as well unique numbers.
ex- (21, 33, 35, 21, 33, 70, 33, 35, 50)

I need to arrange it in such a way that all the duplicates will come up first followed by unique numbers.

Result for the given example should be:
(21, 21, 33, 33, 35, 35, 70, 50)

This a trivial problem in C, creating a binary search tree from the array solves the problem.

As I am new to Perl I don't know indepth of the language.
Would appreciate any help on this regard.

~Ashim
# 2  
Old 01-24-2008
why bother with constructing binary search tree yourself when Perl provides an easy solution:
Code:
#!/usr/bin/perl
# dup_array.pl
my @nums = (21, 33, 35, 21, 33, 70, 33, 35, 50);
print "before sorting\n";
for $i (@nums) {
    print $i, "\n";
}

@nums = sort {$a <=> $b} @nums;

print "after sorting\n";
for $i (@nums) {
    print $i, "\n";
}

# 3  
Old 01-24-2008
I _think_ the OP wants:

Code:
21, 21, 33, 33, 35, 35, 70, 50

not:

Code:
21, 21, 33, 33, 35, 35, 50, 70

# 4  
Old 01-24-2008
Yes, what I really want is all the duplicate members followed by unique numbers without any relational order consideration.

So the Sorting might give a correct solution for this example.

But it is not a generic one.It may happen that a duplicate number is present that is greater than an unique number
# 5  
Old 01-24-2008
if you are not a newbie to Perl, this will guide you to achieve what you want
edit: i was being paranoid here.

this may be more appropriate

Last edited by Yogesh Sawant; 01-24-2008 at 12:18 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Help arranging text

By using this code how can we get the stars in inverted positions? str="*" for i in 1 2 3 4 5 do echo "$str" str="$str *" done The output should be like this * * * * * * * * * * * * * * * Please use CODE tags as required by forum rules!... (5 Replies)
Discussion started by: Meeran Rizvi
5 Replies

2. Shell Programming and Scripting

How to remove duplicates in C shell Array?

Please help me on this My script name is uniqueArray.csh #!/bin/csh set ARRAY = ( one teo three one three ) set ARRAY = ( $ARRAY one five three five ) How to remove the duplicates in this array ,sort and save those in the same variable or different variable. Thanks in the advance ... (3 Replies)
Discussion started by: SA_Palani
3 Replies

3. Shell Programming and Scripting

awk - Remove duplicates during array build

Greetings Experts, Issue: Within awk script, remove the duplicate occurrences that are space (1 single space character) separated Description: I am processing 2 files using awk and during processing, I am building an array and there are duplicates on this; how can I delete the duplicates... (3 Replies)
Discussion started by: chill3chee
3 Replies

4. Shell Programming and Scripting

Need help in arranging data

I have a file with user activity and need to display only the start and end timestamp of the activity. I don't know how can we write an logic for this please help me in a bettr way to work on it User Activity_log ----------------------------------- ... (5 Replies)
Discussion started by: lazydev
5 Replies

5. UNIX for Dummies Questions & Answers

Arranging columns in a line

Hi, Please give a solution... Current File 200101701 A 5 B 283 D 222 200085506 A 5 B 6 C 304 200081406 A 5 200101784 D 1111Desired Output 200101701 A 0005 B 0283 * * D 222 ... (4 Replies)
Discussion started by: satyar
4 Replies

6. Shell Programming and Scripting

Need Help in arranging the output

Hello All, Please find attached input and output files. I want to write a shell script to achieve this. I tried using awk but not getting how to do this as I am new to shell programming. Thanks (4 Replies)
Discussion started by: Sudeep Bhattad
4 Replies

7. UNIX for Dummies Questions & Answers

Arranging data

I have thousand lines of data...: A 1 B 2 C 3 D 4 E 5 A 21 B 22 C 23 D 24 E 25 A 31 B 32 C 33 D 34 E 35 ........... ON AND AND ON (3 Replies)
Discussion started by: bobo
3 Replies

8. Shell Programming and Scripting

need help in arranging the alias

Hello Guys, I have around 100 hosts setup as alias in my profile for easy sshing. alias ada='ssh -Y username@da.domain.com' alias ast='ssh -Y username@terix.domain.com' alias bb1='ssh -X username@ggserver.ns.domain.com' . . . . I now would like to use sshmenu software in which... (4 Replies)
Discussion started by: upengan78
4 Replies

9. UNIX for Dummies Questions & Answers

Re-arranging lines of text... help?

Hello, I am new to Linux, and I am learning slowly but for surely. I am trying to currently figure out how to go about re-arranging lines of text of a *.txt file... Like for example: Say pool.txt has 20 lines of text, and the last 5 lines of text I want to move to the top of the *.txt file... (2 Replies)
Discussion started by: shorte85
2 Replies

10. Shell Programming and Scripting

Arranging files

Hi all, This is program to identify and arrange programs(scripts) based on their she-bang values to a folder with the same name. The parts of mkdir and copy and creating problems.I also doubt the use of hash...maybe some problems in it. Please help out debugging this. Code pasted at: Paste... (2 Replies)
Discussion started by: Vivek788
2 Replies
Login or Register to Ask a Question