Software Engineering Excellence - The key to mastering the Digital Transformation in Organisations
-
Upload
daniel-mendez -
Category
Engineering
-
view
389 -
download
3
Transcript of 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
http://zentrum-digitalisierung.bayern
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”)
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
Technology User Reach-out
0 10 20 30 40 50 60 70 80
Angry Birds
Internet
TV
Radio
Telephone
Years to reach 50 million users
Source: Citi Digital Strategy Team
* Marc Andreessen (WSJ, 2011)
“Software is eating the world”
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
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…)
100.000 lines of code
(We’re getting somewhere…)
100.000 lines of code
TypicaliPhone app
TypicaliPhone app
Hubble SpaceTelescope
TypicaliPhone app
Hubble SpaceTelescope
Mars Curiosity Rover
10.000.000 lines of code
TypicaliPhone app
Hubble SpaceTelescope
Mars Curiosity Rover
Firefox browser
10.000.000 lines of code
Large Hydron Collider
Large Hydron Collider
Large Hydron Collider
Modern high-end car
Large Hydron Collider
Modern high-end car
Total DNA* of a mouse(*base pairs in genome)
Large Hydron Collider
Modern high-end car
Total DNA* of a mouse(*base pairs in genome)
Google codebase
2.000.000.000 lines of code
“Software is eating the world”, indeed
* Marc Andreessen (WSJ, 2011)
Software-driven Transformation swallows all Industrial Sectors
(Hig
her)
Educ
atio
n
?
…
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
What is their business model?
?
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
Meanwhile, Digitisation in Germany as it is perceived
How to master the Digital Transformation?
As a first step:
Increase awareness about the role of software
What does this mean for my organisation?
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…
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?
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
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