CS146
Chris Pollett
Feb 5, 2014
1 for j=2 to A.length 2 key = A[j] 3 // Insert A[j] into the sorted sequence A[1..j-1] 4 i = j - 1 5 while i > 0 and A[i] > key 6 A[i+1] = A[i] 7 i = i - 1 8 A[i + 1] = key
import sys def insertion_sort(A): for j in range(1, len(A)): key = A[j] # Insert A[j] into the sorted sequence A[0:j-2] i = j - 1 while i >= 0 and A[i] > key: A[i + 1] = A[i] i = i - 1 A[i + 1] = key if len(sys.argv) < 2: print "Enter some numbers to sort" raise SystemExit(1) A = sys.argv[1:]; for i in range(0,len(A)): try: A[i] = int(A[i]) except ValueError: print "Items to sort must be integers" raise SystemExit(1) insertion_sort(A); print A;
public class InsertionSort { public static void sort(int[] A) { for(int j = 0; j < A.length; j++) { int key = A[j]; // Insert A[j] into the sorted sequence A[0], A[1], ... A[j-1] int i = j - 1; while(i >= 0 && A[i] > key) { A[i + 1] = A[i]; i = i - 1; } A[i + 1] = key; } } public static void main(String args[]) { if(args.length < 1) { System.out.println("Enter some numbers to sort"); System.exit(1); } int[] A = new int[args.length]; try { for(int j = 0; j < args.length; j++) { A[j] = Integer.parseInt(args[j]); } } catch (NumberFormatException e) { System.out.println("Items to sort must be integers"); System.exit(1); } sort(A); String space = ""; for(int key: A) { System.out.print(space + key); space = " "; } System.out.print("\n"); } }