Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.61 KB | None | 0 0
  1.  
  2. #include <iostream>
  3. using namespace std;
  4. #include <Windows.h>
  5. #include <ctime>
  6.  
  7. void insertionsort(int arr[],int size){
  8.  
  9. int n=size,temp,d;
  10.  
  11. for (int c = 1 ; c <= n - 1; c++)
  12. {
  13. d = c;
  14.  
  15. while ( d > 0 && arr[d] < arr[d-1]) {
  16. temp = arr[d];
  17. arr[d] = arr[d-1];
  18. arr[d-1] = temp;
  19.  
  20. d--;
  21. }
  22. }
  23.  
  24.  
  25. }
  26.  
  27. void bubblesort(int arr[],int size){
  28.  
  29. int swap;
  30.  
  31.  
  32. for(int k=0;k<size;k++){
  33. for(int l=0;l<size;l++){
  34.  
  35.  
  36. if(arr[l+1]!=arr[size]&&arr[l]>arr[l+1]){
  37.  
  38. swap=arr[l];
  39. arr[l]=arr[l+1];
  40. arr[l+1]=swap;
  41.  
  42. }
  43.  
  44. }
  45.  
  46. }
  47. }
  48.  
  49. void mergeSort(int arr[],int low,int mid,int high,int msize){
  50.  
  51. int temp[100000];
  52. int i,m,k,l;
  53.  
  54. l=low;
  55. i=low;
  56. m=mid+1;
  57.  
  58. while((l<=mid)&&(m<=high)){
  59.  
  60. if(arr[l]<=arr[m]){
  61. temp[i]=arr[l];
  62. l++;
  63. }
  64. else{
  65. temp[i]=arr[m];
  66. m++;
  67. }
  68. i++;
  69. }
  70.  
  71. if(l>mid){
  72. for(k=m;k<=high;k++){
  73. temp[i]=arr[k];
  74. i++;
  75. }
  76. }
  77. else{
  78. for(k=l;k<=mid;k++){
  79. temp[i]=arr[k];
  80. i++;
  81. }
  82. }
  83.  
  84. for(k=low;k<=high;k++){
  85. arr[k]=temp[k];
  86. }
  87.  
  88. }
  89.  
  90. void partitionmerge(int arr[],int low,int high,int mersize){
  91.  
  92. int mid;
  93.  
  94. if(low<high){
  95. mid=(low+high)/2;
  96.  
  97. partitionmerge(arr,low,mid,mersize);
  98. partitionmerge(arr,mid+1,high,mersize);
  99. mergeSort(arr,low,mid,high,mersize);
  100. }
  101. }
  102.  
  103. void quickSort(int arr[], int left, int right) {
  104. int i = left, j = right;
  105. int tmp;
  106. int pivot = arr[(left + right) / 2];
  107.  
  108. /* partition */
  109. while (i <= j) {
  110. while (arr[i] < pivot)
  111. i++;
  112. while (arr[j] > pivot)
  113. j--;
  114. if (i <= j) {
  115. tmp = arr[i];
  116. arr[i] = arr[j];
  117. arr[j] = tmp;
  118. i++;
  119. j--;
  120. }
  121. };
  122.  
  123. /* recursion */
  124. if (left < j)
  125. quickSort(arr, left, j);
  126. if (i < right)
  127. quickSort(arr, i, right);
  128. }
  129.  
  130. void printfun(int *a,int max){
  131. cout<<"Sorted elements are : ";
  132.  
  133. for(int k=0;k<max;k++){
  134.  
  135. cout<<a[k]<<",";
  136.  
  137. }
  138. cout<<endl;
  139.  
  140. }
  141.  
  142. void createarr(int a[],int size){
  143.  
  144.  
  145. for(int k=0;k<size;k++){
  146.  
  147. a[k]=0+rand()%size;
  148.  
  149. }
  150.  
  151.  
  152.  
  153. }
  154.  
  155.  
  156. int main(){
  157.  
  158. //insertionsort(arr,size);
  159. //bubblesort(arr,size);
  160. //partitionmerge(arr,0,max,arrsize)
  161. //quickSort(arr,0,arrsize-1)
  162.  
  163.  
  164. #pragma region implementarray
  165. srand(time(NULL));
  166. int *arr1=new int[20];
  167. int *arr2=new int[50];
  168. int *arr3=new int[100];
  169. int *arr4=new int[300];
  170. int *arr5=new int[500];
  171. int *arr6=new int[1000];
  172. int *arr7=new int[5000];
  173. int *arr8=new int[10000];
  174. int *arr9=new int[50000];
  175. int *arr10=new int[100000];
  176.  
  177.  
  178. createarr(arr1,20);
  179. createarr(arr2,50);
  180. createarr(arr3,100);
  181. createarr(arr4,300);
  182. createarr(arr5,500);
  183. createarr(arr6,1000);
  184. createarr(arr7,5000);
  185. createarr(arr8,10000);
  186. createarr(arr9,50000);
  187. createarr(arr10,100000);
  188.  
  189.  
  190.  
  191.  
  192.  
  193. #pragma endregion implementarray
  194.  
  195. #pragma region testingtime
  196.  
  197. LARGE_INTEGER frequency; // ticks per second
  198. LARGE_INTEGER t1, t2; // ticks
  199. double elapsedTime;
  200.  
  201.  
  202. QueryPerformanceFrequency(&frequency);
  203. QueryPerformanceCounter(&t1);
  204.  
  205.  
  206.  
  207. //bubblesort(arr1,20);
  208. //bubblesort(arr2,50);
  209. //bubblesort(arr3,100);
  210. //bubblesort(arr4,300);
  211. //bubblesort(arr5,500);
  212. //bubblesort(arr6,1000);
  213. //bubblesort(arr7,5000);
  214. //bubblesort(arr8,10000);
  215. //bubblesort(arr9,50000);
  216. //bubblesort(arr10,100000);
  217.  
  218.  
  219. //insertionsort(arr1,20);
  220. //insertionsort(arr2,50);
  221. //insertionsort(arr3,100);
  222. //insertionsort(arr4,300);
  223. //insertionsort(arr5,500);
  224. //insertionsort(arr6,1000);
  225. //insertionsort(arr7,5000);
  226. //insertionsort(arr8,10000);
  227. //insertionsort(arr9,50000);
  228. //insertionsort(arr10,100000);
  229.  
  230.  
  231. //quickSort(arr1,0,19);
  232. //quickSort(arr2,0,49);
  233. //quickSort(arr3,0,99);
  234. //quickSort(arr4,0,299);
  235. //quickSort(arr5,0,499);
  236. //quickSort(arr6,0,999);
  237. //quickSort(arr7,0,4999);
  238. //quickSort(arr8,0,9999);
  239. //quickSort(arr9,0,49999);
  240. //quickSort(arr10,0,99999);
  241.  
  242. //partitionmerge(arr1,0,19,20);
  243. //partitionmerge(arr2,0,49,50);
  244. //partitionmerge(arr3,0,99,100);
  245. //partitionmerge(arr4,0,299,300);
  246. //partitionmerge(arr5,0,499,500);
  247. //partitionmerge(arr6,0,999,1000);
  248. //partitionmerge(arr7,0,4999,5000);
  249. //partitionmerge(arr8,0,9999,10000);
  250. //partitionmerge(arr9,0,49999,50000);
  251. //partitionmerge(arr10,0,99999,100000);
  252.  
  253. QueryPerformanceCounter(&t2);
  254.  
  255. elapsedTime = (t2.QuadPart - t1.QuadPart) * 1000.0 / frequency.QuadPart;
  256. cout << elapsedTime << " ms.\n";
  257.  
  258.  
  259.  
  260. #pragma endregion testingtime
  261.  
  262. delete []arr1;
  263. delete []arr2;
  264. delete []arr3;
  265. delete []arr4;
  266. delete []arr5;
  267. delete []arr6;
  268. delete []arr7;
  269. delete []arr8;
  270. delete []arr9;
  271. delete []arr10;
  272.  
  273.  
  274. system("Pause");
  275. return 0;
  276.  
  277. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement