#include<bits/stdc++.h> usingnamespacestd; int a[10000]; int n; void(int a[], int n){ bool flag = 0; int k = n-1; int last; for (int i = 0; i < n-1; i++) { flag = 0; for (int j = 0; j < k; j++) { sum++; if (a[j] > a[j+1]) { flag = 1; last = j; swap(a[j], a[j+1]); } } if (flag == 0) { break; } k = last; } } intmain() { while(1) { sum = 0; cin>>n; for (int i = 0; i < n; i++) { a[i] = rand() % n; } sort(a, n); for(int i = 0; i < n; i++) cout<<a[i]<<" "; } }
#if 0 #include<bits/stdc++.h> usingnamespacestd; int a[100000],n; void(int a[], int n){ int left = 0, right = n-1; int flag = 0; int last; while (left < right) { for (int i = left; i < right; i++) { sum++; if (a[i] > a[i+1]) { swap(a[i], a[i+1]); flag = 1; last = i; } } if (flag == 0) break; right = last; flag = 0; for (int j = last; j > left; j--) { sum++; if (a[j] < a[j-1]) { swap(a[j], a[j-1]); flag = 1; last = j; } } if (flag == 0) break; left = last; } } intmain() { while(1) { cin>>n; for (int i = 0; i < n; i++) { a[i] = rand() % n; } sort(a, n); for(int i = 0; i < n; i++) cout<<a[i]<<" "; } } #endif
近期评论