Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //XCODE
- #include <iostream>
- #include <stdio.h>
- #include <cstdlib>
- #include <ctime>
- #include <climits>
- int e_c_c = 0;
- int i_c_c = 0;
- int n_o_s = 0;
- void ins_sort(long *mas,long n)
- {
- int counter = 0;
- for(int i = 1;i < n;i++){
- for(int j = i; j > 0 && mas[j-1] > mas[j]; j --){
- counter++;
- long tmp = mas[j-1];
- mas[j-1] = mas[j];
- mas[j] = tmp;
- }
- }
- }
- void ins_binary_sort(long* mas, long n)
- {
- long buf;
- long left;
- long right;
- long aver;
- for (long i = 1; i < n; i++)
- if (mas[i-1] > mas[i]){
- buf = mas[i];
- left = 0;
- right = i-1;
- do {
- aver = (left + right)/2;
- if (mas[aver] < buf ) left = aver + 1;
- else right = aver - 1;
- } while (left <= right);
- for (long j = i-1; j>=left; j--)
- mas[j+1] = mas[j];
- mas[left] = buf;
- }
- }
- void print_mas(long *mas,long n)
- {
- std::cout << "Sorted mas: ";
- for (int i = 0; i < n; i++)
- {
- std::cout << mas[i] << " ";
- }
- }
- int main(int argc, const char * argv[]) {
- long n;
- bool ch;
- bool per = false;
- std::srand(std::time(0));
- do
- {
- std::cout<<"Input N:";
- std::cin>>n;
- if (std::cin.fail())
- {
- std::cin.clear();
- std::cin.ignore(INT_MAX, '\n');
- }
- }
- while(n <= 0);
- do
- {
- std::cout<<"If you want random generation - input 1\n If you want hand-made generation - input 0\n";
- std::cin>>ch;
- if (std::cin.fail())
- {
- std::cin.clear();
- std::cin.ignore(INT_MAX, '\n');
- }
- }
- while(ch != 0 && ch != 1);
- long* mas = new long[n];
- for(int i = 0; i<n; i++){
- switch (ch) {
- case 0:
- std::cin>>mas[i];
- if (std::cin.fail())
- {
- std::cin.clear();
- std::cin.ignore(INT_MAX, '\n');
- }
- break;
- case 1:
- mas[i] = rand();
- break;
- default:
- break;
- }
- }
- for (int i = 0; i<n; i++) {
- std::cout<<mas[i]<<" ";
- }
- std::cout<<"\n";
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < n-i-1; j++) {
- if (mas[j] > mas[j+1]) {
- long b = mas[j];
- mas[j] = mas[j+1];
- mas[j+1] = b;
- per = true;
- }
- }
- if(per==false){
- break;
- }
- }
- std::cout<<"Your array:";
- for (int i = 0; i<n; i++) {
- std::cout<<mas[i]<<" ";
- }
- ins_sort(mas, n);
- print_mas(mas, n);
- ins_binary_sort(mas, n);
- print_mas(mas, n);
- delete[] mas;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement