Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. import java.io.IOException;
  2. import java.io.PrintWriter;
  3. import java.util.ArrayList;
  4. import java.util.Collections;
  5.  
  6. public class QuickSort {
  7. static ArrayList<Integer> list = new ArrayList<Integer>();
  8. static int ix = 0;
  9. static int jx = list.size()-1;
  10. static int threads = 1;
  11. static boolean swap = false;
  12. static PrintWriter writer;
  13. public static void main(String[] args) throws IOException {
  14. // TODO Auto-generated method stub
  15. writer = new PrintWriter("output.txt", "UTF-8");
  16. fillList();
  17. //sort(ix,jx,jx,ix, 50);
  18. sort2(ix,jx);
  19. writer.close();
  20.  
  21.  
  22.  
  23. }
  24. public static void fillList(){
  25. int num;
  26. for(int i = 0; i < 100; i++){
  27. num = (int)Math.round(Math.ceil(Math.random()*100));
  28. list.add(num);
  29. }
  30. jx = list.size() - 1;
  31. writer.println(list);
  32.  
  33. //System.out.println(list);
  34.  
  35. }
  36. public static void sort(int i, int j, int max, int min, int pivot) throws IOException{
  37. //System.out.println(threads);
  38. //int pivot = list.get((j-i)/2);
  39. while(!(i>j)){
  40. if(i == 9){
  41. break;
  42. }
  43. if(list.get(i) >= pivot){
  44.  
  45. while(!(i>j)){
  46. if(list.get(j) <= pivot){
  47. swap = true;
  48. break;
  49. }
  50. if(j == 0){
  51. break;
  52. }
  53. j--;
  54. }
  55. if(swap){
  56. Collections.swap(list, i, j);
  57. swap = false;
  58. }
  59.  
  60. }
  61. i++;
  62. }
  63. if(j - min > 0){
  64. sort(min,j,j,min,list.get(min));
  65. }
  66. if(max-i > 0){
  67. sort(i,max,max,i,list.get(i));
  68. }
  69.  
  70.  
  71.  
  72. if(j - min == 0 || max-i == 0 ){
  73. writer.println(list);
  74. //System.out.println(list);
  75. threads --;
  76. }
  77. }
  78. public static void sort2(int i, int j) throws IOException{
  79. //System.out.println(i);
  80. int min = i;
  81. int max = j;
  82. int pivot = list.get(i);
  83. i++;
  84. while(!(i > j)){
  85. if(list.get(i) >= pivot){
  86. while(!(i > j)){
  87. if(list.get(j) <= pivot){
  88. Collections.swap(list, i, j);
  89. break;
  90. }
  91. j--;
  92. }
  93. }
  94.  
  95. i++;
  96.  
  97. }
  98. Collections.swap(list, j, min);
  99. if((max - (j+1)) >= 1){
  100. sort2(j+1,max);
  101. }
  102. if((j-1)-min >= 1 ){
  103. sort2(min,j-1);
  104. }
  105. writer.println(list);
  106. //System.out.println(list);
  107.  
  108. }
  109.  
  110.  
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement