INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
• Talk With Other Members
• Be Notified Of Responses
• Keyword Search
Favorite Forums
• Automated Signatures
• Best Of All, It's Free!

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

#### Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

# sorting

## sorting

(OP)
Hi all,

I have a sorting program

do i=1,4
do j=i+1,5
if(er(i).gt.er(j))then
temp=er(i)
er(i)=er(j)
er(j)=temp
end if
end do
end do

I am looking how I can print sorted values with their array index as in original data.

example
er=[9,3,2,5,1,4]
sorted er=[1,2,3,4,5,9] & print original index of elements
ie 5,3,2,6,4,1 while printing the sorted output.

Charls Antony

### RE: sorting

what you can do is put together another "index" array of the same size N as the array you want to sort, fill it in with the numbers 1 through N and, THEN, every time you do a swap in the sorted array, you make the same swap in the "index" array.

### RE: sorting

Use a type.

#### CODE

type (Pair)
integer value ! er values
integer index
end type 

When initializing your array of Pair. Assume that PMAX is the size

#### CODE

do ii = 1, PMAX
plist(ii)%index = ii
plist(ii)%value = ??   ! how er(ii) got its value
end do 

When sorting, the comparison is

#### CODE

if (plist(ii).value .lt. plist(jj).value) then ...

#### Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

#### Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Close Box

# Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

• Talk To Other Members
• Notification Of Responses To Questions
• Favorite Forums One Click Access
• Keyword Search Of All Posts, And More...

Register now while it's still free!