Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1-semestr / 13-LEKCIYA_2

.pdf
Скачиваний:
0
Добавлен:
20.09.2026
Размер:
390 Кб
Скачать
☆
Másele:
10 sanlı pútin sanlardan turatuǵın dizimdi ósiw tártibinde sortlaw kerek. Dizimdi paydalanıwshıdan alıń hám onı Selection Sort algoritmi járdeminde sortlań. Sortlawdan aldın hám keyin dizimdi ekranǵa shıǵarıń.
C++ programması:
#include <iostream> #include <vector>
using namespace std;
void selectionSort(vector<int>& arr) { int n = arr.size(); for (int i = 0; i < n - 1; i++) { int minIndex = i; for (int j = i + 1; j < n; j++) { if (arr[j] < arr[minIndex]) { minIndex = j; } } if (minIndex != i) { swap(arr[i], arr[minIndex]); }
Algoritmniń islew tártibi:
1. Massivtiń birinshi elementin eń kishi element dep belgileymiz.
2. Massivtiń qalǵan bóliminen eń kishi elementti izleymiz.
3. Eger tabılǵan element birinshi elementten kishi bolsa, olardı almastıramız.
4. Sortlanǵan bólimdi bir elementke keńeytemiz.
5. Bul processti massivtiń aqırına shekem qaytalaymız.
C++ tilinde tańlap sortlaw usılınıń implementaciyası:
void selectionSort(int arr[], int n) { for (int i = 0; i < n-1; i++) { int min_idx = i; for (int j = i+1; j < n; j++) { if (arr[j] < arr[min_idx]) { min_idx = j; } } if (min_idx != i) { swap(arr[i], arr[min_idx]); } } }
} }
void printArray(const vector<int>& arr) { for (int num : arr) { cout << num << " "; } cout << endl; }
int main() { vector<int> numbers(10);
 for (int i = 0; i < 10; i++) { cin >> numbers[i]; }
 printArray(numbers);
selectionSort(numbers);
 printArray(numbers);
return 0; }
1. Kerekli kitapxanalardı qosamız: #include <iostream> #include <vector> `iostream` - engiziw/shıǵarıw operaciyaları ushın, `vector` - dinamikalıq massiv ushın.
2. `selectionSort` funkciyasın anıqlaymız:
void selectionSort(vector<int>& arr) { int n = arr.size(); for (int i = 0; i < n - 1; i++) { int minIndex = i; for (int j = i + 1; j < n; j++) { if (arr[j] < arr[minIndex]) { minIndex = j; } }
if (minIndex != i) { swap(arr[i], arr[minIndex]); } } }
Bul funkciya Selection Sort algoritmin ámelge asıradı. Ol hár qádemde eń kishi elementti tabadı hám onı dizimniń basına jıljıtadı.
3. `printArray` funkciyasın anıqlaymız: void printArray(const vector<int>& arr) { for (int num : arr) { cout << num << " "; } cout << endl; } Bul funkciya dizimdi ekranǵa shıǵaradı.
4. `main` funkciyasında:
vector<int> numbers(10);
// Paydalanıwshıdan sanlardı kirgiziwdi soraymız cout << "10 pútin san kirgiziń:" << endl; for (int i = 0; i < 10; i++) { cin >> numbers[i]; }
// Dáslepki massivti basıp shıǵaramız cout << "Dáslepki massiv: "; printArray(numbers);
// Massivti sortlaymız selectionSort(numbers);
// Sortlanǵan massivti basıp shıǵaramız cout << "Sortlanǵan massiv: "; printArray(numbers);
1. `vector<int> numbers(10);` - 10 elementli pútin sanlar vektorın jaratamız.
2. Paydalanıwshıdan sanlardı kirgiziwdi soraymız:
- `cout` arqalı paydalanıwshıǵa 10 san kirgiziwdi soraymız.
- `for` dóńgelegi arqalı 10 ret qaytalap, hár bir sandı `cin` járdeminde vektorǵa kirgizemiz.
3. `printArray(numbers);` funkciyasın shaqırıp, dáslepki massivti ekranǵa shıǵaramız.
4. `selectionSort(numbers);` funkciyasın shaqırıp, massivti sortlaymız.
5. Jáne de `printArray(numbers);` funkciyasın shaqırıp, endi sortlanǵan massivti ekranǵa shıǵaramız.
Bul kod paydalanıwshıdan 10 san alıp, olardı dáslep kirgizilgen tártipte kórsetedi, keyin bolsa Selection Sort algoritmi menen sortlap, sortlanǵan nátiyjeni kórsetedi.
Tańlap sortlaw usılınıń artıqmashlıqları:
- In-place algoritm, qosımsha orın talap etpeydi
- Almastırıwlar sanı az (eń kóbinde n-1)
- Kishi massivler ushın qolaylı
Kemshilikleri:
- Waqıt quramalılıǵı O(n^2), úlken massivler ushın nátiyjesiz
- Turaqsız (unstable) sortlaw usılı
Bul úsh sortlaw usılı - kóbikli sortlaw, qosıp sortlaw hám tańlap sortlaw - ápiwayı hám túsiniwge ańsat bolǵanı menen, olardıń waqıt quramalılıǵı O(n^2) bolǵanlıqtan, úlken massivlerde nátiyjesiz. Olar kóbinese oqıw maqsetinde hám kishi massivlerde qollanıladı. Ámeliy jumıslarda kóbirek nátiyjeli bolǵan Quick Sort, Merge Sort yamasa Heap Sort sıyaqlı usıllar qollanıladı.
Соседние файлы в папке 1-semestr