Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

32
Daniel Méndez Software & Systems Engineering Software Engineering Excellence – The key to mastering the Digital Transformation in Organisations @mendezfe

Transcript of Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

Page 1: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

Daniel MéndezSoftware & Systems Engineering

Software Engineering Excellence –The key to mastering the Digital Transformation in Organisations

@mendezfe

Page 2: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

http://zentrum-digitalisierung.bayern

Page 3: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

Industrial (R-)evolution(s)

Digitisation4

Advancement in automation, interconnection and flexibility(Today)

Mechanisation1

Introduction of production facilities(18th century)

Electrisation2

Introduction of production lines base on division of labour(19th century)

Electronisation3

Introduction of (ICT) electronics for production control(1970’s)

Economical, political, and societal change (“transformation”)

Page 4: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

Enablers of Digital Transformation

§ (ICT) Infrastructure § Exponential technological progress§ Hardware-related progress (smaller, faster, cheaper, more standardised)§ Software-related progress (methodologies, languages, abstraction)

§ Interconnection & automation§ Services and information as new resources§ Vanishing boundaries➤ New ways of working➤ New (“digital”) business models,

e.g., by networking and composition

➤ Everything happens in a breath-taking speed

Page 5: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

Technology User Reach-out

0 10 20 30 40 50 60 70 80

Angry Birds

Facebook

Internet

TV

Radio

Telephone

Years to reach 50 million users

Source: Citi Digital Strategy Team

Page 6: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

* Marc Andreessen (WSJ, 2011)

“Software is eating the world”

Page 7: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

Let’s talk about Software

01 int partition(int arr[], int left, int right)02 {03 int i = left, j = right;04 int tmp;05 int pivot = arr[(left + right) / 2];06 while (i <= j) {07 while (arr[i] < pivot)08 i++;09 while (arr[j] > pivot)10 j--;11 if (i <= j) {12 tmp = arr[i];13 arr[i] = arr[j];14 arr[j] = tmp;15 i++;16 j--;17 }18 };19 return i;20 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

20 lines of code

Page 8: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

01 i nt par t it ion( i nt ar r [] , int lef t, i nt r ight )02 {03 i nt i = lef t, j = r ight ;04 i nt t mp;05 i nt pivot = arr [( lef t + right ) / 2];06 w hi le (i <= j) {07 w hi le (ar r [i] < pivot )08 i++;09 w hi le (ar r [j] > pivot )10 j- - ;11 i f ( i <= j) {12 t mp = arr [ i] ;13 ar r [i] = ar r [j] ;14 ar r [j] = t mp;15 i++;16 j- - ;1 7 }

1 8 };1 9 re tu rn i;2 0 }

~2.000 lines of code(Still a toy example…)

Page 9: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

100.000 lines of code

(We’re getting somewhere…)

Page 10: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

100.000 lines of code

Page 11: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

TypicaliPhone app

Page 12: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

TypicaliPhone app

Hubble SpaceTelescope

Page 13: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

TypicaliPhone app

Hubble SpaceTelescope

Mars Curiosity Rover

Page 14: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

10.000.000 lines of code

TypicaliPhone app

Hubble SpaceTelescope

Mars Curiosity Rover

Firefox browser

Page 15: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

10.000.000 lines of code

Page 16: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

Large Hydron Collider

Page 17: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

Large Hydron Collider

Facebook

Page 18: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

Large Hydron Collider

Facebook

Modern high-end car

Page 19: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

Large Hydron Collider

Facebook

Modern high-end car

Total DNA* of a mouse(*base pairs in genome)

Page 20: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

Large Hydron Collider

Facebook

Modern high-end car

Total DNA* of a mouse(*base pairs in genome)

Google codebase

2.000.000.000 lines of code

Page 21: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

“Software is eating the world”, indeed

* Marc Andreessen (WSJ, 2011)

Page 22: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

Software-driven Transformation swallows all Industrial Sectors

(Hig

her)

Educ

atio

n

?

Page 23: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

Exemplary Symptoms of the Digital Transformation

The largest taxi company does not own any taxi

Source: Tom Goodwin, The Battle Is For The Customer Interface, TechCrunch.com

The largest app providers barely develop own apps

The most popular (social) media services do not create own content

Page 24: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

What is their business model?

Page 25: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

?

InMrd.USD USA AsienJD.com 48Salesforce.com 49priceline.com 63Baidu 72eBay 73Tencent Holding 190Amazon 199Facebook 226Alibaba 233Google 373

Market Value of TOP-10-Internet companies10/2015

Platform provider

Page 26: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

Meanwhile, Digitisation in Germany as it is perceived

Page 27: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

How to master the Digital Transformation?

Page 28: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

As a first step:

Increase awareness about the role of software

What does this mean for my organisation?

Page 29: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

The Role of Software in Organisations

§ … as a product

§ … in the product (e.g. automotive, avionic)

§ … for research & development (e.g. in medicine and chemistry)

§ … for information processing (e.g. banking and insurance)

§ … as an infrastructure (e.g. in production and logistics)

What is it for you?

Software Engineering is a new strategic core competence

Software…

Page 30: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

Challenges in Today’s Software Engineering

Traditional (legacy) software systems

New level of complexity where traditional approaches don’t scale anymore§ From specific-purpose data to Big Data to Smart Data (analytics)§ From Agility over Fast Experimental Cycles to Chaos Engineering§ From highly specialised teams to interdisciplinary and distributed teams

Next generation of software systems§ (Evolving) software families§ Adaptable standard products with value for the individuals§ Virtualisation / Cloud computing / Software as a service§ Human-centred software systems§ Highly connected (cross-domain) systems of systems§ …

What are yours?

Page 31: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

3 Important Principles to Master the Digital Transformation

➤ From ICT governance to more experimentation / failure culture➤ From centralistic hierarchies to (more) enterprise agility➤ Rethink the role of the CIO

➤ Methodologies over technologies➤ Identify your topic expects (you probably have them already)➤ Cultivate interdisciplinary teams for cross-domain projects

➤ Foster knowledge transfer➤ Collaborate with research institutions and universities➤ Better understand needs of customers and employees

Continuous Learning

Culture &

Structure

SoftwareCompetence

Page 32: Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations

Further reading§ Talk by Arnold Picot: Digitalisierung der Arbeitswelt: Zwischen Flexibilisierung und

Polarisierung? (Basis for infographic on slide 2)§ Tom Goodwin, The Battle Is For The Customer Interface, TechCrunch.com§ Manfred Broy, Software Eats the World – Zehn Thesen zur strategischen Bedeutung von

Software in Wirtschaftsunternehmen, SEI, 2015 (Basis for discussion on role of software in organisations and principles)

Image sources§ http://infobeautiful4.s3.amazonaws.com/2013/10/1276_Lines_of_code_Sep2015_FB.png

(Basis for illustration of software sizes)§ https://upload.wikimedia.org/wikipedia/commons/d/d6/A-line1913.jpg (Used in slide 2)

References