Successfully reported this slideshow.

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

2

Share

1 of 32
1 of 32

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

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

  1. 1. Daniel Méndez Software & Systems Engineering Software Engineering Excellence – The key to mastering the Digital Transformation in Organisations @mendezfe
  2. 2. http://zentrum-digitalisierung.bayern
  3. 3. Industrial (R-)evolution(s) Digitisation 4 Advancement in automation, interconnection and flexibility (Today) Mechanisation 1 Introduction of production facilities (18th century) Electrisation 2 Introduction of production lines base on division of labour (19th century) Electronisation 3 Introduction of (ICT) electronics for production control (1970’s) Economical, political, and societal change (“transformation”)
  4. 4. 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
  5. 5. 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
  6. 6. * MarcAndreessen (WSJ, 2011) “Software is eating the world”
  7. 7. 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
  8. 8. 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…)
  9. 9. 100.000 lines of code (We’re getting somewhere…)
  10. 10. 100.000 lines of code
  11. 11. Typical iPhone app
  12. 12. Typical iPhone app Hubble Space Telescope
  13. 13. Typical iPhone app Hubble Space Telescope Mars Curiosity Rover
  14. 14. 10.000.000 lines of code Typical iPhone app Hubble Space Telescope Mars Curiosity Rover Firefox browser
  15. 15. 10.000.000 lines of code
  16. 16. Large Hydron Collider
  17. 17. Large Hydron Collider Facebook
  18. 18. Large Hydron Collider Facebook Modern high-end car
  19. 19. Large Hydron Collider Facebook Modern high-end car Total DNA* of a mouse (*base pairs in genome)
  20. 20. 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
  21. 21. “Software is eating the world”, indeed * MarcAndreessen (WSJ, 2011)
  22. 22. Software-driven Transformation swallows all Industrial Sectors (Higher) Education ? …
  23. 23. 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
  24. 24. What is their business model?
  25. 25. ? In Mrd. USD USA Asien JD.com 48 Salesforce.com 49 priceline.com 63 Baidu 72 eBay 73 Tencent Holding 190 Amazon 199 Facebook 226 Alibaba 233 Google 373 Market Value of TOP-10-Internet companies 10/2015 Platform provider
  26. 26. Meanwhile, Digitisation in Germany as it is perceived
  27. 27. How to master the Digital Transformation?
  28. 28. As a first step: Increase awareness about the role of software What does this mean for my organisation?
  29. 29. 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…
  30. 30. 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?
  31. 31. 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 Software Competence
  32. 32. 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

×