Sorting arrays


Results 1 to 7 of 7

Thread: Sorting arrays

Threaded View

  1. #1

    Default Sorting arrays

    I am trying to sort paired ADC readings in two arrays. In a loop, an0 an1 are sampled and stored
    in seperate arrays. These become matched pairs for that time period. I need the min/max for all the readings for AN0. No problem with one array. My problem is keeping the AN1 samples, paired with the original AN0 samples after sorting. If anyone has an approach, I would really appreciate
    the help. Thanks
    Example:
    Sampled RAW data
    Array
    Pos AN0 AN1
    1 512 514
    2 512 512
    3 998 326
    4 1021 270
    5 640 499
    6 300 504
    7 423 511
    8 512 512
    9 512 514
    10 510 512
    11 511 512
    12 515 512

    What I need below

    SORTED AN0 IN ASSENDING ORDER, AN1 STAYS PAIRED WITH ORIGINAL AN0
    New Pos AN0 AN1 Old Pos
    1 300 504 6
    2 423 511 7
    3 510 512 10
    4 511 512 11
    5 512 514 1
    6 512 512 2
    7 512 512 8
    8 512 514 9
    9 515 512 12
    10 640 499 5
    11 998 326 3
    12 1021 270 4

    The code below is based on Melanie's, which appeared in post 4 of this thread
    http://www.picbasic.co.uk/forum/showthread.php?t=6734

    I hope this can be modified to do what I need

    Code:
    SAMPLE_AN0 WORD [12]
    SAMPLE_AN1 WORD [12]
    CounterA var BYTE
    DataTemp var WORD
    Getsamples:
     For A = 1 to 12
      adcin 0 SAMPLE_AN0[A]
      adcin 1 SAMPLE_AN1[A]
     NEXT A
    Sortdata: 'THIS WILL SORT SAMPLES_AN0 not SAMPLE_AN1
    CounterA=0
    SortArrayLoop:
    If SAMP_AN0[CounterA+1] < SAMP_AN0[CounterA] then
        DataTemp = SAMP_AN0[CounterA]
        SAMP_AN0[CounterA] = SAMP_AN0[CounterA+1]
        SAMP_AN0[CounterA+1]= DataTemp
    If CounterA > 0 then CounterA = CounterA - 2
        endif
        CounterA = CounterA + 1
    If CounterA < 11 then goto SortArrayLoop
    END
    Last edited by mark_s; - 21st March 2012 at 22:08. Reason: format changed when postedm, sorry

Members who have read this thread : 1

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts