Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- int faster(int ara[], int n) {
- int max1 = 0, max2 = 0;
- for(int i = 0; i < n; i++) {
- if(ara[i] > max1) {
- max1 = ara[i];
- }
- }
- for(int i = 0; i < n; i++) {
- if(ara[i] > max2 && ara[i] != max1) {
- max2 = ara[i];
- }
- }
- return (max1 * max2);
- }
- int naive(int ara[], int n) {
- int product, max_product = 0;
- for(int i = 0; i < n; i++) {
- for(int j = i + 1; j < n; j++) {
- product = ara[i] * ara[j];
- if(product > max_product) {
- max_product = product;
- }
- }
- }
- return max_product;
- }
- int main()
- {
- time_t t;
- srand((unsigned) time(&t));
- int n;
- while(true) {
- n = rand() % 10 + 1;
- int ara[n];
- for(int i = 0; i < n; i++) {
- ara[i] = rand() % 9 + 1;
- }
- int pf = faster(ara, n);
- int pn = naive(ara, n);
- if(pf != pn) {
- for(int i = 0; i < n; i++) {
- printf("%d ", ara[i]);
- }
- printf("\n");
- printf("faster = %d, naive = %d\n", pf, pn);
- break;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement