5. 정렬 알고리즘 의 간단 한 알고리즘 인 거품 정렬, 간단 한 정렬 선택 과 직접 정렬 삽입
2084 단어 데이터 구조
최근 의 국제 정 세 는 이와 같다. 미 제 는 학교 가 끝나 면 가지 말 라 고 소 리 쳤 다.
우크라이나 가 소 리 쳤 다.
유럽 연합 은 수업 이 끝나 면 시작 하 라 고 소 리 쳤 다.!
보 대 제 는 학교 가 파 했 구나, 도대체 나 를 때 릴 거 야, 안 때 릴 거 야? 라 고 차 갑 게 말 했다.
본론 에 들 어가 면 알고리즘 을 배 울 때 정렬 을 언급 하지 않 을 수 없습니다. 정렬 알고리즘 은 주로 간단 한 알고리즘 과 개선 알고리즘 으로 나 눌 수 있 습 니 다. 전 자 는 주로 거품 정렬, 간단 한 선택 정렬 과 직접 삽입 정렬 이 있 습 니 다.후 자 는 주로 힐 정렬 (직접 삽입 정렬 개선), 쌓 기 정렬 (간단 한 선택 정렬 개선), 병합 정렬 (셀 프 정렬 개선) 과 빠 른 정렬 (셀 프 거품 정렬 개선) 이 있 습 니 다.
다음은 제 가 C + + 로 쓴 간단 한 정렬 알고리즘 입 니 다. 여러분, 지 켜 보 세 요.
#include
using namespace std;
const int maxSize = 10;//
//
struct myList
{
int r[maxSize];
int length;
};
//
void swap(myList *L, int i, int j)
{
int temp = L->r[i];
L->r[i] = L->r[j];
L->r[j] = temp;
}
//
void bubbleSort(myList *L)
{
int i(0),j(0);
bool flag = true;
for (i = 0; i < L->length && flag; i++)
{
flag = false;
for (j = (L->length - 2); j >= i; j--)
{
if (L->r[j] > L->r[j+1])
{
swap(L,j,j+1);
flag = true;
}
}
}
}
//
void simpleChooseSort(myList *L)
{
int i(0),j(0);
int min;
for ( i = 0; i < L->length; i++)
{
min = i;
for (j = i +1; j < L->length; j++)
{
if (L->r[j] < L->r[min])
{
min = j;
}
}
if (min != i)
{
swap(L,i,min);
}
}
}
//
void directInsertSort(myList *L)
{
int i(0),j(0);
for ( i = 0;i < (L->length - 1); i++)
{
if (L->r[i+1] < L->r[i])
{
int temp = L->r[i+1];
for (j = i; L->r[j] > temp; j--)
{
L->r[j+1] = L->r[j];
}
L->r[j + 1] = temp;
}
}
}
//
int main()
{
//
myList *myL = new myList;
myL->length = 9;
for (int i = 0; i < myL->length; i++)
{
int temp(0);
cout<>temp;
myL->r[i] = temp;
}
//
//bubbleSort(myL);//
//simpleChooseSort(myL);//
directInsertSort(myL);//
//
cout<length; i++)
{
cout<r[i]<
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.