Advertisement
raju02

Raihan3Sort

Feb 19th, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.09 KB | None | 0 0
  1. ///Number 1: Merge sort Ascending Order
  2. #include<stdlib.h>
  3. #include<stdio.h>
  4. void merge(int arr[], int l, int m, int r)
  5. {
  6. int i, j, k;
  7. int n1 = m - l + 1;
  8. int n2 = r - m;
  9.  
  10. int L[n1], R[n2];
  11.  
  12.  
  13. for(i = 0; i < n1; i++)
  14. L[i] = arr[l + i];
  15. for(j = 0; j < n2; j++)
  16. R[j] = arr[m + 1+ j];
  17.  
  18.  
  19. i = 0;
  20. j = 0;
  21. k = l;
  22. while (i < n1 && j < n2)
  23. {
  24. if (L[i] <= R[j])
  25. {
  26. arr[k] = L[i];
  27. i++;
  28. }
  29. else
  30. {
  31. arr[k] = R[j];
  32. j++;
  33. }
  34. k++;
  35. }
  36.  
  37. while (i < n1)
  38. {
  39. arr[k] = L[i];
  40. i++;
  41. k++;
  42. }
  43.  
  44. while (j < n2)
  45. {
  46. arr[k] = R[j];
  47. j++;
  48. k++;
  49. }
  50. }
  51. void mergeSort(int arr[], int l, int r)
  52. {
  53. if (l < r)
  54. {
  55. int m = l+(r-l)/2;
  56. mergeSort(arr, l, m);
  57. mergeSort(arr, m+1, r);
  58. merge(arr, l, m, r);
  59. }
  60. }
  61.  
  62. void printArray(int A[], int size)
  63. {
  64. int i;
  65. for (i=0; i < size; i++)
  66. printf("%d ", A[i]);
  67. printf("\n");
  68. }
  69.  
  70.  
  71. int main()
  72. {
  73. int arr[] = {12, 11, 13, 5, 6, 7};
  74. int arr_size = sizeof(arr)/sizeof(arr[0]);
  75.  
  76. printf("Given array is \n");
  77. printArray(arr, arr_size);
  78.  
  79. mergeSort(arr, 0, arr_size - 1);
  80.  
  81. printf("\nSorted array is \n");
  82. printArray(arr, arr_size);
  83. return 0;
  84. }
  85. /// Number 2 : merge sort Descending order
  86. #include<stdlib.h>
  87. #include<stdio.h>
  88. void merge(int arr[], int l, int m, int r)
  89. {
  90. int i, j, k;
  91. int n1 = m - l + 1;
  92. int n2 = r - m;
  93.  
  94. int L[n1], R[n2];
  95.  
  96.  
  97. for(i = 0; i < n1; i++)
  98. L[i] = arr[l + i];
  99. for(j = 0; j < n2; j++)
  100. R[j] = arr[m + 1+ j];
  101.  
  102.  
  103. i = 0;
  104. j = 0;
  105. k = l;
  106. while (i < n1 && j < n2)
  107. {
  108. if (L[i] >= R[j])
  109. {
  110. arr[k] = L[i];
  111. i++;
  112. }
  113. else
  114. {
  115. arr[k] = R[j];
  116. j++;
  117. }
  118. k++;
  119. }
  120.  
  121. while (i < n1)
  122. {
  123. arr[k] = L[i];
  124. i++;
  125. k++;
  126. }
  127.  
  128. while (j < n2)
  129. {
  130. arr[k] = R[j];
  131. j++;
  132. k++;
  133. }
  134. }
  135. void mergeSort(int arr[], int l, int r)
  136. {
  137. if (l < r)
  138. {
  139. int m = l+(r-l)/2;
  140. mergeSort(arr, l, m);
  141. mergeSort(arr, m+1, r);
  142. merge(arr, l, m, r);
  143. }
  144. }
  145.  
  146. void printArray(int A[], int size)
  147. {
  148. int i;
  149. for (i=0; i < size; i++)
  150. printf("%d ", A[i]);
  151. printf("\n");
  152. }
  153.  
  154.  
  155. int main()
  156. {
  157. int arr[] = {12, 11, 13, 5, 6, 7};
  158. int arr_size = sizeof(arr)/sizeof(arr[0]);
  159.  
  160. printf("Given array is \n");
  161. printArray(arr, arr_size);
  162.  
  163. mergeSort(arr, 0, arr_size - 1);
  164.  
  165. printf("\nSorted array is \n");
  166. printArray(arr, arr_size);
  167. return 0;
  168. }
  169. ///Number 3: Quick sort Ascending order
  170.  
  171. #include<stdio.h>
  172. void swap(int* a, int* b)
  173. {
  174. int t = *a;
  175. *a = *b;
  176. *b = t;
  177. }
  178. int partition (int arr[], int l, int h)
  179. {
  180. int x = arr[h];
  181. int i = (l - 1);
  182.  
  183. for (int j = l; j <= h- 1; j++)
  184. {
  185.  
  186. if (arr[j] <= x)
  187. {
  188. i++;
  189. swap(&arr[i], &arr[j]);
  190. }
  191. }
  192. swap(&arr[i + 1], &arr[h]);
  193. return (i + 1);
  194. }
  195.  
  196.  
  197. void quickSort(int arr[], int l, int h)
  198. {
  199. if (l < h)
  200. {
  201. int p = partition(arr, l, h);
  202. quickSort(arr, l, p - 1);
  203. quickSort(arr, p + 1, h);
  204. }
  205. }
  206.  
  207.  
  208. void printArray(int arr[], int size)
  209. {
  210. int i;
  211. for (i=0; i < size; i++)
  212. printf("%d ", arr[i]);
  213. printf("\n");
  214. }
  215.  
  216.  
  217. int main()
  218. {
  219. int arr[] = {10, 7, 8, 9, 1, 5};
  220. int n = sizeof(arr)/sizeof(arr[0]);
  221. quickSort(arr, 0, n-1);
  222. printf("Sorted array: \n");
  223. printArray(arr, n);
  224. return 0;
  225. }
  226. /// Number 4 Quick sort Descending order
  227.  
  228. #include<stdio.h>
  229. void swap(int* a, int* b)
  230. {
  231. int t = *a;
  232. *a = *b;
  233. *b = t;
  234. }
  235. int partition (int arr[], int l, int h)
  236. {
  237. int x = arr[h];
  238. int i = (l - 1);
  239.  
  240. for (int j = l; j <= h- 1; j++)
  241. {
  242.  
  243. if (arr[j] >= x)
  244. {
  245. i++;
  246. swap(&arr[i], &arr[j]);
  247. }
  248. }
  249. swap(&arr[i + 1], &arr[h]);
  250. return (i + 1);
  251. }
  252.  
  253.  
  254. void quickSort(int arr[], int l, int h)
  255. {
  256. if (l < h)
  257. {
  258. int p = partition(arr, l, h);
  259. quickSort(arr, l, p - 1);
  260. quickSort(arr, p + 1, h);
  261. }
  262. }
  263.  
  264.  
  265. void printArray(int arr[], int size)
  266. {
  267. int i;
  268. for (i=0; i < size; i++)
  269. printf("%d ", arr[i]);
  270. printf("\n");
  271. }
  272.  
  273.  
  274. int main()
  275. {
  276. int arr[] = {10, 7, 8, 9, 1, 5};
  277. int n = sizeof(arr)/sizeof(arr[0]);
  278. quickSort(arr, 0, n-1);
  279. printf("Sorted array: \n");
  280. printArray(arr, n);
  281. return 0;
  282. }
  283. /// Number 5 . Bubble sort Ascending order
  284. #include <stdio.h>
  285. void swap(int *xp, int *yp)
  286. {
  287. int temp = *xp;
  288. *xp = *yp;
  289. *yp = temp;
  290. }
  291. void bubbleSort(int arr[], int n)
  292. {
  293. int i, j;
  294. for (i = 0; i < n-1; i++)
  295. for (j = 0; j < n-i-1; j++)
  296. if (arr[j] > arr[j+1])
  297. swap(&arr[j], &arr[j+1]);
  298. }
  299. void printArray(int arr[], int size)
  300. {
  301. int i;
  302. for (i=0; i < size; i++)
  303. printf("%d ", arr[i]);
  304. printf("\n");
  305. }
  306.  
  307. int main()
  308. {
  309. int arr[] = {64, 34, 25, 12, 22, 11, 90};
  310. int n = sizeof(arr)/sizeof(arr[0]);
  311. bubbleSort(arr, n);
  312. printf("Sorted array: \n");
  313. printArray(arr, n);
  314. return 0;
  315. }
  316. /// Number 6 Bubble sort Descending order
  317. #include <stdio.h>
  318. void swap(int *xp, int *yp)
  319. {
  320. int temp = *xp;
  321. *xp = *yp;
  322. *yp = temp;
  323. }
  324. void bubbleSort(int arr[], int n)
  325. {
  326. int i, j;
  327. for (i = 0; i < n-1; i++)
  328. for (j = 0; j < n-i-1; j++)
  329. if (arr[j] < arr[j+1])
  330. swap(&arr[j], &arr[j+1]);
  331. }
  332. void printArray(int arr[], int size)
  333. {
  334. int i;
  335. for (i=0; i < size; i++)
  336. printf("%d ", arr[i]);
  337. printf("\n");
  338. }
  339.  
  340. int main()
  341. {
  342. int arr[] = {64, 34, 25, 12, 22, 11, 90};
  343. int n = sizeof(arr)/sizeof(arr[0]);
  344. bubbleSort(arr, n);
  345. printf("Sorted array: \n");
  346. printArray(arr, n);
  347. return 0;
  348. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement