class ĠQuick Sort Ġ{ ĊĠĠĠ Ġprivate Ġfun Ġquick Sort ( arr : ĠInt Array , Ġstart : ĠInt , Ġend : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( start Ġ< Ġend ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpivot _ pos Ġ= Ġpartition ( arr , Ġstart , Ġend ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġquick Sort ( arr , Ġstart , Ġpivot _ pos Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġquick Sort ( arr , Ġpivot _ pos Ġ+ Ġ 1 , Ġend ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpartition ( arr : ĠInt Array , Ġstart : ĠInt , Ġend : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpivot Ġ= Ġarr [ end ] ĊĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġstart ĊĠĠĠĠĠĠĠ Ġvar Ġj Ġ= Ġend Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ<= Ġj ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( arr [ j ] Ġ<= Ġpivot Ġ&& Ġarr [ i ] Ġ> Ġpivot ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġswap ( arr , Ġi , Ġj ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( arr [ i ] Ġ<= Ġpivot ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( arr [ j ] Ġ> Ġpivot ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj -- ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġswap ( arr , Ġi , Ġend ) ĊĠĠĠĠĠĠĠ Ġreturn Ġi ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġswap ( arr : ĠInt Array , Ġi : ĠInt , Ġj : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtmp Ġ= Ġarr [ i ] ĊĠĠĠĠĠĠĠ Ġarr [ i ] Ġ= Ġarr [ j ] ĊĠĠĠĠĠĠĠ Ġarr [ j ] Ġ= Ġtmp ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprint ( arr : ĠInt Array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġarr . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint ( arr [ i ]. toString () Ġ+ Ġ" Ġ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprint ('\ n ') ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmain () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġarr Ġ= Ġint ArrayOf ( 9 , Ġ 7 , Ġ 5 , Ġ 1 1 , Ġ 1 2 , Ġ 2 , Ġ 1 4 , Ġ 3 , Ġ 1 0 , Ġ 4 , Ġ 6 ) ĊĠĠĠĠĠĠĠ Ġprint (" Before : Ġ") ĊĠĠĠĠĠĠĠ Ġprint ( arr ) ĊĠĠĠĠĠĠĠ Ġquick Sort ( arr , Ġ 0 , Ġarr . size Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġprint (" After : Ġ") ĊĠĠĠĠĠĠĠ Ġprint ( arr ) ĊĠĠĠ Ġ} Ċ } Ċ