Re: Aw: Re: Aw: Re: [stella] Sorting Algorithms.

Subject: Re: Aw: Re: Aw: Re: [stella] Sorting Algorithms.
From: Julian Squires <tek@xxxxxxx>
Date: Tue, 26 Mar 2002 12:52:59 -0330
Good day.

On Mon, Mar 25, 2002 at 03:18:01PM +0100, cybergoth@xxxxxxxx wrote:
> ...I'd like to ask you, if you probably could type in both the bubble and
> the insertion sort for me?

No problem. I was going to offer to post them in 6502 assembler, but
it shouldn't be very hard to translate.

Program S (Straight insertion sort).  The records to be sorted are in
locations INPUT+1 through INPUT+N; they are sorted in place in the
same area, on a full-word key. rI1 == j - N; rI2 == i; rA == R == K;
assume that N >= 2.

01  START	ENT1 2-N	1		S1. Loop on j.  j <- 2.
02  2H		LDA INPUT+N,1	N-1		S2. Set up i, K, R.
03		ENT2 N-1,1	N-1		i <- j - 1.
04  3H		CMPA INPUT,2	B+N-1-A		S3. Compare K : K_i.
05		JGE 5F		B+N-1-A		To S5 if K >= K_i.
06  4H		LDX INPUT,2	B		S4. Move R_i, decrease i.
07		STX INPUT+1,2	B		R_{i+1} <- R_i.
08		DEC2 1		B		i <- i - 1.
09		J2P 3B		B		To S3 if i > 0.
10  5H		STA INPUT+1,2	N-1		S5. R into R_{i+1}.
11		INC1 1		N-1
12		J1NP 2B		N-1		2 <= j <= N.         []


Program B (Bubble sort). rI1 == t; rI2 == j.

01  START	ENT1 N		1		B1. Initialize BOUND. t <- N.
02  1H		ST1 BOUND(1:2)	A		BOUND <- t.
03		ENT2 1		A		B2. Loop on j. j <- 1.
04		ENT1 0		A		t <- 0.
05		JMP BOUND	A		Exit if j >= BOUND.
06  3H		LDA INPUT,2	C		B3. Cmp/exchange R_j:R_{j+1}.
07		CMPA INPUT+1,2	C
08		JLE 2F		C		No exchange if K_j <= K_{j+1}.
09		LDX INPUT+1,2	B		R_{j+1}
10		STX INPUT,2	B		        -> R_j.
11		STA INPUT+1,2	B		(old R_j) -> R_{j+1}.
12		ENT1 0,2	B		t <- j.
13  2H		INC2 1		C		j <- j + 1.
14  BOUND	ENTX -*,2	A+C		rX <- j - BOUND. [modified]
15		JXN 3B		A+C		Do step B3 for 1 <= j < BOUND.
16  4H		J1P 1B		A		B4. Any exchanges? To B2 if
						                   t > 0.  []

I can type in the pseudocode for these as well, if you are interested.

-- 
  -/ 
 |/|  Julian Squires <tek@xxxxxxx>
 /-
----------------------------------------------------------------------------------------------
Archives (includes files) at http://www.biglist.com/lists/stella/archives/
Unsub & more at http://www.biglist.com/lists/stella/


Current Thread