초보 학 프로 그래 밍 의 세 가지: 세 가지 가장 기본 적 인 정렬 알고리즘 의 실현 (거품 정렬, 정렬 선택, 직접 정렬 삽입)
2547 단어 C/C++
박문 참고:http://blog.csdn.net/hguisu/article/details/7776068
http://blog.csdn.net/cjf_iceking/article/details/7916194
#include
#include
#include
//bubble sort method
void bubbleSort(int *srcData, int len)
{
int i,j;
int temp;
for(i = 0; i < len-1; i++)
{
for(j = 0; j< len - i -1 ; j++)
{
if(srcData[j] > srcData[j + 1])
{
temp = srcData[j];
srcData[j] = srcData[j + 1];
srcData[j + 1] = temp;
}
}
}
}
//select sort method
void selectSort(int srcData[], int len)
{
int i,j;
int temp; //save the temporary number
int index; //the index for finding the minimum number in the array
for(i = 0; i < len - 1; i++)
{
index = i;
for(j = i+1; j < len; j++)
if(srcData[index] > srcData[j]) //find the minimum index
{
index = j;
}
if(index != i) //swap
{
temp = srcData[index];
srcData[index] = srcData[i];
srcData[i] = temp;
}
}
}
//straight insert sort method
void inertSort(int srcData[], int len)
{
int i,j;
int temp;
for(i = 1; i < len; i++)
{
//if the value of i is greater than the value of i-1,insert straightly;
//otherwise, move the ordered list and then insert
if(srcData[i] < srcData[i-1])
{
j= i-1;
temp = srcData[i]; //save a temparary number which is waiting for being sorted
srcData[i] = srcData[i-1]; //move back to one elemet
while(temp < srcData[j]) //find the insert position from the ordered list
{
srcData[j+1] = srcData[j];
j--; //move back the elements
}
srcData[j+1] = temp; //insert into the right pisition
}
}
}
void main()
{
int N = 10;
srand((unsigned)time(NULL));
int i,j;
int *srcData = new int[N];
printf("This is the original random data:
");
for(i = 0; i < N; i++)
{
srcData[i] = rand()%100+1;
printf("%d ",srcData[i]);
}
printf("
");
//bubbleSort(srcData,N);
//selectSort(srcData,N);
inertSort(srcData,N);
printf("This is the sorted data:
");
for(i = 0; i < N; i++)
{
printf("%d ",srcData[i]);
}
printf("
");
system("pause");
}
주석 은 모두 영어 로 작성 되 었 으 니 비교적 상세 할 것 이다.잘못된 부분 이 있 으 면 벽돌 을 치 며 지적 해 주세요 ~
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
09.문자 / 메모리영역//메모리 영역 스택 데이터 ROM(코드) //읽기전용메모리 문자 char(1),wchar(2) 바이트 . char c = 'a'; wchar_t wc = L'a';...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.