17
1 Programming in C

Programming in C - Clemson · Programming with Arrays Subtasks Partially-filled arrays Loading Searching Sorting Sum, average Extremes. 3 Partially-filled Arrays (Common Case) Must

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programming in C - Clemson · Programming with Arrays Subtasks Partially-filled arrays Loading Searching Sorting Sum, average Extremes. 3 Partially-filled Arrays (Common Case) Must

1

Programming in C

Page 2: Programming in C - Clemson · Programming with Arrays Subtasks Partially-filled arrays Loading Searching Sorting Sum, average Extremes. 3 Partially-filled Arrays (Common Case) Must

2

Programming with Arrays Subtasks

Partially-filled arrays

Loading

Searching

Sorting

Sum, average

Extremes

Page 3: Programming in C - Clemson · Programming with Arrays Subtasks Partially-filled arrays Loading Searching Sorting Sum, average Extremes. 3 Partially-filled Arrays (Common Case) Must

3

Partially-filled Arrays (Common Case) Must be declared some maximum size

Program must maintain How many elements are being used

and/or

Highest subscript

Page 4: Programming in C - Clemson · Programming with Arrays Subtasks Partially-filled arrays Loading Searching Sorting Sum, average Extremes. 3 Partially-filled Arrays (Common Case) Must

4

Sizeof and Arrays Operator sizeof returns the total bytes in the

argument

Total elements = sizeof(array) / sizeof(data-type)

Example

Sizeof does not return total bytes being used

You cannot use sizeof to determine the number of elements being used in a partially filled array

Page 5: Programming in C - Clemson · Programming with Arrays Subtasks Partially-filled arrays Loading Searching Sorting Sum, average Extremes. 3 Partially-filled Arrays (Common Case) Must

5

Loading an Array Be careful not to overfill

Do not read directly into array elements

Page 6: Programming in C - Clemson · Programming with Arrays Subtasks Partially-filled arrays Loading Searching Sorting Sum, average Extremes. 3 Partially-filled Arrays (Common Case) Must

6

Loading a Two-dimensional Array

Page 7: Programming in C - Clemson · Programming with Arrays Subtasks Partially-filled arrays Loading Searching Sorting Sum, average Extremes. 3 Partially-filled Arrays (Common Case) Must

7

Safer 2D Load

Page 8: Programming in C - Clemson · Programming with Arrays Subtasks Partially-filled arrays Loading Searching Sorting Sum, average Extremes. 3 Partially-filled Arrays (Common Case) Must

8

Searching an Array Linear search

Simple

Binary search

Requires sorted array

Generally faster for large arrays

May require the use of an indicator to denote found or not found

74?

Page 9: Programming in C - Clemson · Programming with Arrays Subtasks Partially-filled arrays Loading Searching Sorting Sum, average Extremes. 3 Partially-filled Arrays (Common Case) Must

9

Linear Search Example Using While

Page 10: Programming in C - Clemson · Programming with Arrays Subtasks Partially-filled arrays Loading Searching Sorting Sum, average Extremes. 3 Partially-filled Arrays (Common Case) Must

10

Linear Search Example Using For

Page 11: Programming in C - Clemson · Programming with Arrays Subtasks Partially-filled arrays Loading Searching Sorting Sum, average Extremes. 3 Partially-filled Arrays (Common Case) Must

11

Sorting Place array into some

order Ascending or descending

Many types Simple: Selection More intelligent: Bubble,

selection, insertion, shell, comb, merge, heap, quick, counting, bucket, radix, distribution, timsort, gnome, cocktail, library, cycle, binary tree, bogo, pigeonhole, spread, bead, pancake, …

Page 12: Programming in C - Clemson · Programming with Arrays Subtasks Partially-filled arrays Loading Searching Sorting Sum, average Extremes. 3 Partially-filled Arrays (Common Case) Must

12

Selection Sort Compare element to all elements below and then

move to next element, swap when appropriate

Page 13: Programming in C - Clemson · Programming with Arrays Subtasks Partially-filled arrays Loading Searching Sorting Sum, average Extremes. 3 Partially-filled Arrays (Common Case) Must

13

Bubble/Sinking Sort Compare adjacent elements, swap when appropriate

Stop if no swaps on a pass

Page 14: Programming in C - Clemson · Programming with Arrays Subtasks Partially-filled arrays Loading Searching Sorting Sum, average Extremes. 3 Partially-filled Arrays (Common Case) Must

14

Sum & Average Example Verify positive count before computing average

Protects against division by zero

Page 15: Programming in C - Clemson · Programming with Arrays Subtasks Partially-filled arrays Loading Searching Sorting Sum, average Extremes. 3 Partially-filled Arrays (Common Case) Must

15

Extremes Same techniques as chapter 5 – best:

Assume first is extreme

Compare others to current extreme

Replace extreme when finding new extreme

Page 16: Programming in C - Clemson · Programming with Arrays Subtasks Partially-filled arrays Loading Searching Sorting Sum, average Extremes. 3 Partially-filled Arrays (Common Case) Must

16

Extremes: Find Maximum Example

Page 17: Programming in C - Clemson · Programming with Arrays Subtasks Partially-filled arrays Loading Searching Sorting Sum, average Extremes. 3 Partially-filled Arrays (Common Case) Must

17

Programming in C

T H E E N D