Таңдау арқылы сұрыптау



Жұмыс түрі:  Курстық жұмыс
Тегін:  Антиплагиат
Көлемі: 20 бет
Таңдаулыға:   
ҚОЖА АХМЕТ ЯСАУИ АТЫНДАҒЫ ХАЛЫҚАРАЛЫҚ ҚАЗАҚ-ТҮРІК УНИВЕРСИТЕТІ
ИНЖЕНЕРИЯ ФАКУЛЬТЕТІ

ЖОБА

Тақырыбы: Таңдау арқылы сұрыптау,Алмастыру арқылы сұрыптау.

Орындады:
6B07154- Электр техникасы және автоматтандыру мамандығының студенттері
Шукурбаев Жавохир,
Шірінбек Нұрсұлтан
Тексерді:
Тасполат Е.

Кентау 2021

МАЗМҰНЫ
Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..3
1.1 Си тілі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .3
1.1 Тарихы ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..4
1.3 Тілге шолу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 7
1.4 Шамаларды өзгерту және салыстыру ... ... ... ... ... ... .. ... ... ... ... ... ... 7
1.5 Айнымалыларды пайдалану ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... 7
1.6 Түрлері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..8
1.7 Стандартты кітапхана ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ..8
1.8 Артықшылықтары ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .9
1.9 Кемшіліктер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...10
2. Dev-C++ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .10
2.1 Іске асырылған функциялар ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... 11
3. Сұрыптау түрлері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 11
3.1 Таңдау арқылы сұрыптау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...11
3.1.2 Мысал ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .12
3.1.1 Бағдарламалау коды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 13
3.1.2 Блок схема ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .14
3.2 Қос сынама ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...15
3.2.1 Бағдарламалау коды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 15
3.2.2 Блок схема ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .17
3.3 Ауыстырып сұрыптау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...18
3.3.1 Алгоритм ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..20
3.3.2 Бағдарламалау коды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 22
3.3.3 Блок схема ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .23
4. Қорытынды ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .24
5. Пайдаланылған әдебиеттер: ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..2 4


Кіріспе
Сұрыптау тапсырмаларын екі топқа бөлуге болады: компараторларды сұрыптау (салыстыру) және типтелген сұрыптау.
Компараторлармен сұрыптау біз кез келген нысандардың жұбын салыстыруға және олардың қайсысы көп білуге болатын жағдайларда пайдаланылады. Бұл сұрыптаудың ең жалпы түрі. Мұндай сұрыптаулар сұрыпталатын екі нысанды салыстыра алатын кейбір функция (компаратор) негізінде жасалады және бірінші аргумент екіншісінен аз болса, шынайы қайтарады немесе керісінше болса, false. Салыстыру алгоритмі нақты міндет үшін қажет болуы мүмкін. Компараторлармен сұрыптау стандартты кітапхана құрамында sort() тиімді жүзеге асырылады (арқылы қосылады ). Алгоритмнің асимптотикалық есептеуіш күрделілігі [Math Processing Error] ретінде сипатталады. Бұл салыстыру сұрыптау үшін теориялық мүмкін нұсқалардың ең жақсы.
Типтелген сұрыптаулар сұрыпталатын объектілердің ерекше қасиеттері мен әдістері туралы қандай да бір қосымша ақпаратты пайдалану үшін құрылады. Мысалы, сұрыпталған жиындарда кездесетін барлық ықтимал мәндердің тізімі алдын ала белгілі болуы мүмкін және олар тым көп емес, онда сұрыптауды есептеу арқылы қолдануға болады. Бұл есептеу күрделілігінің сызықтық сипаттамасы бар өте тиімді алгоритм, бірақ ол санауыштарды орналастыру үшін қосымша жадты талап етеді.
Егер белгілі разрядтық сандар сұрыпталса (немесе белгіленген ұзындық жолдары), онда тиімді таңқаларлық LSD сұрыптау (Least Significant Digit radix sorts) болуы мүмкін. Мұндай алгоритмдердің асимптотикалық күрделілігі компараторлармен жиі сызықтық [Math Processing Error] сұрыптауға қарағанда жақсы болуы мүмкін. Алайда кейде логарифм жасырылады. Мысалы, әртүрлі сұрыптауда қайталаулар саны сұрыпталатын сандардағы разрядтардың санына тең, ал бұл ең көп сұрыпталатын саннан логарифм.

1.1. Си тілі
C -- 1969-1973 жылдары Bell Labs қызметкері Деннис Ричи В тілінің эволюциясы ретінде әзірлеген жалпы мақсаттағы құрастырылған, статикалық терілген бағдарламалау тілі. Ол бастапқыда UNIX операциялық жүйесін енгізу үшін жасалған, бірақ содан кейін көптеген басқа платформаларға ауыстырылды.
Тілдің дизайнына сәйкес оның конструкциялары типтік машиналық нұсқаулармен тығыз байланысты, соның арқасында ол ассемблер тілі тән жобаларда, соның ішінде операциялық жүйелерде де, әртүрлі құрылғыларға арналған әртүрлі қолданбалы бағдарламалық қамтамасыз етуде - суперкомпьютерлерден бастап қосымша тапты. ендірілген жүйелерге. Си бағдарламалау тілі бағдарламалық қамтамасыз ету индустриясының дамуына айтарлықтай әсер етті және оның синтаксисі C ++, C #, Java және Objective-C сияқты бағдарламалау тілдерінің негізі болды.
C # (айтылуы si sharp) -- объектіге бағытталған бағдарламалау тілі. Оны 1998-2001 жылдары Андерс Хейлсберг пен Скотт Вилтаумот бастаған Microsoft инженерлері тобы Microsoft платформасы үшін қолданбаларды әзірлеу тілі ретінде әзірледі.

1.2. Тарихы
Си тілінің шығуы UNIX операциялық жүйесімен тығыз байланысты, өйткені бұл ОС осы С тілінде жазылып шыққан. UNIXC жұмыс істеу ортасы Си тілін жүйелік программалау тілі ретінде елге таныстырды, ол компиляторлар мен ОС-тер жазу үшін қолайлы деп саналады. Бірақ Си тілі кез келген салада программалар жазуға да өте қолайлы тіл болып табылады. Алғаш рет UNIX 1969 жылы Нью-Джерси штатындағы Белл фирмасының лабораториясында PDP-7 мини-ЭЕМ-інде жасалып шықты. UNIX PDP-7 компьютерінің ассемблер тілінде жазылды. Бұдан соң сол лабораторияның жетекшісі Кен Томпсон 1970 жылы В деп аталған жаңа тілге арнап компилятор жасап шықты. Осы тілді Си тілінің негізі деп атауға болады. Жалпы Си тілінің даму жолына қарасақ:
Алгол-60 1960-ж. басында халықаралық комитет жасап шығарды
CPL (Combined Programming Language Кембриджде және Лондон университетінде 1963 ж. қатарласа жасалды
BCPL (Basic Combined Programming Language) Кембриджде Мартин Ричардс 1967 ж. жасап шығарды
B Bell Labs қызметкері Кен Томпсон 1970 ж. жасады
С Bell Labs қызметкері Дэннис Ритчи 1972 ж. жасады
Сонымен, 1983 ж. С тілінің стандартын жасау мақсатында (ANSI C) Америка ұлттық стандарттар институты (ANSI) құрылды.
Тіл Bell Labs фирмасының қызметкері Бьерн Страуструп өз қажеттіліктеріне C тіліне бірқатар жетілдіру ойлап тапқан кезде 1980 жылдардың басында пайда болды. 1970-ші жылдардың соңында Страуструп кезектер теориясының міндеттерінен Bell Labs-да жұмыс істей бастағанда (телефон шақыруларын үлгілеу қосымшасында), ол сол уақытта бар модельдеу тілдерін қолдану әрекеттері тиімсіз, ал жоғары тиімді машина тілдерін қолдану олардың шектеулі мәнерлілігіне байланысты өте қиын екенін анықтады. Осылайша, Симул тілі үлкен бағдарламалық жасақтаманы әзірлеу үшін өте пайдалы болар еді, бірақ тым баяу жұмыс істейді, ал BCPL тілі өте жылдам, бірақ төмен деңгейдегі тілдерге тым жақын және үлкен бағдарламалық жасақтаманы әзірлеу үшін жарамды емес.

1983 жылы тілге виртуалды функциялар, функциялар мен операторларды қайта жүктеу, сілтемелер, константтар, еркін жадыны басқаруды пайдаланушылық бақылау, типтерді жақсартылған тексеру және түсіндірмелердің жаңа стилі сияқты жаңа мүмкіндіктер қосылды (). Алынған тіл Классикалық с жай ғана қосымша нұсқасы болудан қалды және C сыныптарымен "C++"деп аталды. Оның алғашқы коммерциялық шығарылымы 1985 жылдың қазанында өтті.
С-ның даму тарихы
Авторы: Деннис Ричи
Компьютер - DEC PDP-11
ОЖ - Unix. Негізі Мартин Ричардстың ескі BCPL тілі болып табылады. BCPL У Кен Томпсонның тіліне біршама әсер етті.
Өз кезегінде В тілінің дамуы 1970 жылы Си тілінің жасалуына әкелді.

Тілге шолу
Си тілінің стандарттары
ANSI
C89
C99

1.4. Шамаларды өзгерту және салыстыру
Әрине, сіз қандай деректер түріне қарамастан, айнымалылар олардың мәнін өзгерту мүмкін емес, ерекше қызығушылық емес. Келесі айнымалылармен бірге қолданылатын кейбір операторлар:
* көбейту,
- азайту,
+ қосу,
бөлу,
= тағайындау,
= = теңдік,
көп,
аз.
!= тең емес
= көп немесе тең
= аз немесе тең
Математикалық функцияларды орындайтын операторлар сол жақта айнымалы нәтижені беру үшін иемдену белгісінің оң жағында пайдаланылуы тиіс.
1.5. Айнымалыларды пайдалану
1. #include iostream
2. using namespace std;
3. int main()
4. {
5. int number;
6. cout " sandy engizińiz: ";
7. cin number;
8. cin.ignore();
9. cout "siz engizdińiz:" number " \n";
10. cin.get();
11. }
Int негізгі сөзі number -- бүтін сан екенін айтады. Cin number ішіндегі мәнді оқиды, пайдаланушы енгізілген саннан кейін енгізуді басу керек. cin.ignore () - таңбаны оқитын және оны елемейтін функция. Біз бағдарламаға енгізуді ұйымдастырдық, Сан енгізілгеннен кейін, біз Enter пернесін басамыз, ол да енгізу ағынына беріледі. Бізге бұл қажет емес, сондықтан біз оны тастаймыз. Егер пайдаланушы ондық санды енгізгісі келсе, онда ол кесіледі (яғни санның ондық бөлігі елемейді). Бағдарлама үлгісін іске қосқан кезде ондық санды немесе таңбалар ретін енгізіп көріңіз, жауап кіріс мәніне байланысты болады.
Өзгермелі тырнақшадан басып шығару кезінде пайдаланылмайтынын ескеріңіз. Тырнақшалардың болмауы компиляторға айнымалы бар екенін хабарлайды, демек, бағдарлама айнымалы атауын орындау кезінде оның мәніне ауыстыру үшін айнымалының мәнін тексеру керек. Бір жолда бірнеше жылжыту операторлары өте қолайлы және қорытынды сол тәртіпте орындалады. Сіз әрбір жылжыту операторын бере отырып, жол литералдарын (тырнақшаға жасалған жолдар) және айнымалыларды бөлуіңіз керек. Бір жылжыту операторымен бірге екі айнымалыны қоюға әрекет қате туралы хабарлама береді. Үтірмен нүкте қоюды ұмытпаңыз. Егер сіз үтірмен нүкте туралы ұмытып қалсаңыз, компилятор бағдарламаны компиляторлауға әрекет жасаған кезде қате туралы хабарлама береді.

Стандартты кітапхана
Си және С++ тілдерінің салыстырмалы сипаттамасы
C ++ -- объектіге бағытталған бағдарламалау тілі, оның негізі -- Си.С -- C ++ тілінің ішкі жиыны, сондықтан C ++ -- Си тілінің үстіңгі жиыны.
Жалпы алғанда, C ++ компиляторы Си тілінде жазылған бағдарламаны құрастыру үшін пайдаланылуы бәлкім. Бүгінгі таңда компиляторлардың көбici C жә C ++ тілінде жазылған бағдарламалармен қаракет істей алады. C++ компиляторына арналған Си тіліндегі программаны жаю уақытында бағдарлама мәтіні барлық файлдың кеңейтімін жөндем сілтеу тиіс.
Қолданыстағы конвенцияға лайық, С тілінде жазылған бағдарламалардың файлдары .C кеңейтілуіне қожа, кәнеки С ++ тілінде жазылғандары - .CPP.
1.7. Артықшылықтары
Баршылық C компиляторлары едің ен таралған тапсырмалар үшін стандартты функциялар кітапханасымен келеді. С стандарты әрбір компилятор қорғау көрсетуі тиіс мүмкіндіктердің едің шағын жинағын анықтайды. Кітапхана функциясы шақырылғанда, компилятор оның атын есте сақтайды. Сонан кері байланыстырушы тұңғыш бағдарлама кодын стандартты кітапханада ертедегідей табылған планета кодымен байланыстырады. Кездеме процесс байланыстыру деп аталады. Кей компиляторлардың өз сілтемелері барлық, басқалары операциялық жүйемен қамтамасыз етілген стандартты байланыстырғышты пайдаланады.
Интерпретатор бағдарламаның әуелгі кодын бір-бірден оқиды, сол ақжолтай орындайды, сонан кері қана келесіге көшеді. Компилятор бүтіл программаны күрт оқып, оны объектілік кодқа түрлендіреді, демек программаның басқы кодын компьютермен тіке орындауға ыңғайлырақ формаға аударады. Объект коды екілік я машиналық код деп дағы аталады. Бағдарлама құрастырылған кезде оның кодында әдепкі кодтың қағай тәсілдері болмайды. Жалпы, интерпретацияланған бағдарлама
1.9 Кемшіліктер
Бұл тіл .NET JIT-компиляция тұжырымдамасын пайдаланады. Кездеме бағдарлама керек болған жағдайда тіке бағдарлама шаруа уақытында машиналық кодтарға жинақталатынын білдіреді. Бірey жағынан, кезмал әлбетте әлуетті, бірақ екінші жағынан, қызметке үстемелеу уақытында аса салмақты тежегіш болуы бәлки. C# сыпыра таралған сөз емес. Сандаған бағдарламашылар Delphi я PHP-ден бейсауат ештеме көрген емес, азырақ қалаларда шаруа іздеуге өлердей көрнекті шектеулер қояды коммерциялық Enterprise саласында шоғырланған. Қысқасы қабат, C# едің әуелі Windows-пен қатысты. Тақау келешекте әлдекім зат өзгереді әм Windows иci дағы нарықта басым болады, бірақ жә да азын-аулақ тәуекел, әсіресе Windows 10 жаңартулары барлық бертінгі өтіpiк екенін ескере отырып, қалады.
2. Dev-C++
Dev-C++ - C++бағдарламалау тілдері үшін қосымшаларды әзірлеудің еркін интеграцияланған ортасы. Дистрибутивке MinGW компиляторы кіреді. Dev-C++ өзі Delphi-де жазылған. GPL сәйкес таратылады.
Жоба SourceForge қолдайды. Жобаның негізін қалаушы Колин Лаплас, ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
АЖ таңдау бойынша сұрыптау
Ауыл шаруашылығы малдарын сұрыптау және жұптау қағидалары мен әдістері
Сұрыптау есептері. Таңдау арқылы сұрыптау
Массивтерді сұрыптаудың қарапайым алгоритмдері
Малды сұрыптау және жұп таңдау
Тізімді сұрыптау
Сұрыптау есептері. қою арқылы сұраптау
Малдың тегін иммуногенетика әдісімен анықтау. Жұптаңдаудың түрлері және маңызы
Сұрыптау әдіс тәсілдері
Сұрыптау есептері. Сұрыптау алгоритмі
Пәндер