Показать сообщение отдельно
Старый 24.07.2013, 00:49   #1
Sitanom
Читер
Аватар для Sitanom
OFFLINE
Регистрация: 08.02.2012
Сообщений: 160
Благодарностей:
2,833 всего
Мнения: + 13549
Репутация: 7290

C++ помогите


Суть проблемы такова, в нижней задаче есть два метода сортировки, и эти два метода надо чтобы выполнялись параллельно, прочел немало статей, но везде либо не понятно написано либо я не догоняю.
Код:
#include <stdlib.h>
 #include <iostream>
 #include <conio.h>
 #include <stdio.h>
 #include <windows.h>
 #include <time.h>
 using namespace std;
 int main ()
 {
 int i, j, chislo,nom,n,flag,k;

 printf("Vvedite razmernost massiva\n");
 cin>>n;
 int *arr=(int*)malloc(n*sizeof(int));


 for (i = 0; i<n; i++)
 arr[i]=rand()%100;

 for (i = 0; i<n; i++)
 printf("%4d",arr[i]);
 printf("\n");

 double start = clock(); 
 for (; ;){
 flag = 0;
 for (i = 0; i<n; i++){
 if (arr[i] < arr[i-1]) {
 swap (arr[i],arr[i-1]);
 flag++;
 }
 }
 if (flag == 0) break;
 } 
 printf("metod puzyrka = %.4lf\n", (clock() - start) / CLOCKS_PER_SEC);
 printf("\n"); 
 for (i=0; i<n; i++)
 printf("%4d",arr[i-1]);
 printf("\n");


 //второй метод

 double start2 = clock(); 
 for (i=0; i<n; i++)
 {
 chislo=arr[i]; nom=i;
 for (j=i+1;j<n;j++)
 {
 if (arr[i]>arr[nom])
 nom=j;
 }
 if (nom!=i)
 {
 arr[i]=arr[nom];
 arr[nom]=chislo;
 }
 }
 printf("sortirovka vyborom = %.4lf\n", (clock() - start2) / CLOCKS_PER_SEC);
 printf("\n");
 for (i=0; i<n; i++)
 printf("%4d",arr[i-1]);
 printf("\n");

 getch();
 free(arr);
 return 0;
 }
 
Ответить с цитированием