Стоит Windows 8 Pro, Visual Studio 2010 Express Edition . |
Опубликован: 17.08.2010 | Доступ: свободный | Студентов: 1000 / 59 | Оценка: 4.11 / 3.89 | Длительность: 29:38:00
Тема: Программирование
Специальности: Программист, Архитектор программного обеспечения
Теги:
Самостоятельная работа 12:
Методы сортировки
Файл реализации методов сортировки - Metods.cpp
Файл реализации методов сортировки Metods.cpp //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Metods.h" #pragma package(smart_init) //--------------------------------------------------------------------------- // Сортировка простыми включениями void simplySort(int n, int a[]) { int i, j, x; for(i=1; i<n; i++){ x = a[i]; j = i-1; while(x<a[j] && j>=0){ a[j+1] = a[j]; j--; } a[j+1] = x; } } //--------------------------------------------------------------------------- // Сортровка бинарными включениями void binSort(int n, int *a) { int i, j, left, right, m; // индексы элементов int x; // опорный элемент for(i = 1; i < n; i++){ x = a[i]; left = 0; right = i - 1; while(left <= right){ m = (left + right) / 2; if(x < a[m]) right = m - 1; else left = m + 1; } // конец while(left <= right) for(j = i - 1; j >= left; j--) a[j + 1] = a[j]; a[left] = x; } // конец for(i = 1; i < n; i++) } //--------------------------------------------------------------------------- // Сортировка Шелла void shellSort(int n, int a[]) { int i, j, k, m, t; int x; static int h[4] = {15, 7, 3, 1}; t = 4; for(m = 0; m < t; m++){ if(h[m] >= n) continue; k = h[m]; for(i = k; i < n; i++){ x = a[i]; j = i - k; while(x < a[j] && j >= 0){ a[j + k] = a[j]; j -= k; } a[j + k] = x; } } } //--------------------------------------------------------------------------- // Сортировка простым выбором void selectSort(int n, int a[]) { int i, j, k; int x; // опорный элемент for(i = 0; i < n - 1; i++){ k = i; x = a[i]; for(j = i + 1; j < n; j++) if(a[j] < x){ k = j; x = a[j]; } a[k] = a[i]; a[i] = x; } // End of for i } //--------------------------------------------------------------------------- // Сортировка методом пузырька void bubbleSort(int n, int a[]) { int i, j; int x; for(i = 1; i < n; i++){ for(j = n - 1; j >= i; j--){ if(a[j-1] > a[j]){ x = a[j-1]; a[j-1] = a[j]; a[j] = x; } } } } //--------------------------------------------------------------------------- // Сортировка с памятью обмена void memorySort(int n, int a[]) { int i, j, k, m; int x; k = 0; for(i=1; i<n; i++){ m=k; for(j=n-1; j>m; j--) if(a[j-1]>a[j]){ x=a[j-1]; a[j-1]=a[j]; a[j]=x; k=j; } if(m==k) break; } } //--------------------------------------------------------------------------- // Шейкер-сортировка (двухпроходная сортировка) void shakerSort(int n, int a[]) { int j, k, left, right; int x; left=0; right=n-1; k=n-1; while(left<right){ for(j=right; j>left; j--) if(a[j-1]>a[j]){ x=a[j-1]; a[j-1]=a[j]; a[j]=x; k=j; } left=k; for(j=left; j<=right; j++) if(a[j-1]>a[j]){ x=a[j-1]; a[j-1]=a[j]; a[j]=x; k=j; } right=k-1; } } //--------------------------------------------------------------------------- // Сортировка Хоора (сортировка с разделением; // "быстрая" сортировка void quickSort(int n, int a[]) { void sort(int leftIndex, int rightIndex, int sortArray[]); sort(0, n-1, a); } // Рекурсивная подпрограмма быстрой сортировки void sort(int left, int right, int a[]) { register i, j, x; int w; i=left; j=right; x=a[(left+right)/2]; while(i<=j){ while(a[i]<x) i++; while(a[j]>x) j--; if(i<=j){ w=a[i]; a[i]=a[j]; a[j]=w; i++; j--; } } if(left<j) sort(left, j, a); if(i<right) sort(i, right, a); } //---------------------------------------------------------------------------
Заголовочный файл UAbout.h
Заголовочный файл UAbout.h //--------------------------------------------------------------------------- #ifndef UAboutH #define UAboutH //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ExtCtrls.hpp> #include <Graphics.hpp> //--------------------------------------------------------------------------- class TAboutBox : public TForm { __published: // IDE-managed Components TImage *Image; TLabel *Label1; TLabel *Label2; TLabel *Label3; TLabel *Label4; TLabel *Label5; private: // User declarations public: // User declarations __fastcall TAboutBox(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TAboutBox *AboutBox; //--------------------------------------------------------------------------- #endif
Файл реализации UAbout.cpp
Файл реализации UAbout.cpp //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "UAbout.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TAboutBox *AboutBox; //--------------------------------------------------------------------------- __fastcall TAboutBox::TAboutBox(TComponent* Owner) : TForm(Owner) { } //---------------------------------------------------------------------------