데이터 구조 (4) 의 거품 정렬
7808 단어 데이터 구조
1 /*
2
3 */
4
5 #include <stdio.h>
6
7 void main(){
8 int array[2000];
9 int numberCount;
10 int i;
11 int j;
12 int temp;
13 int flag;
14
15 printf(" ( ) -9999 !
");
16 for(i=0;i<2000;i++){
17 scanf("%d",&array[i]);
18 if(array[i]==-9999){break;}
19 }
20
21 numberCount=i;
22 printf("
:%d !",numberCount);
23
24 // , , ,
25 for(i=0;i<numberCount;i++){
26 flag=0;
27 for(j=numberCount-1;j>=i+1;j--){// j>=i+1 ,
28 //
29 if(array[j]<array[j-1]){
30 temp=array[j];
31 array[j]=array[j-1];
32 array[j-1]=temp;
33 flag=1;
34 }
35 }
36 if(flag==0){break;}
37 }
38
39 printf("
:
");
40 for(i=0;i<numberCount;i++){
41 printf("%d ",array[i]);
42 }
43
44 printf("
:
");
45 for(i=numberCount-1;i>=0;i--){
46 printf("%d ",array[i]);
47 }
48
49 printf("
");
50 }
거품 순 서 는 제 가 처음에 c 언어 를 배 웠 을 때 두 드 렸 지만 시간 이 지나 면 한꺼번에 해결 할 수 없습니다. 자연 언어 로 설명 하면 그 원리 도 쉽게 이해 할 수 있 습 니 다!다만 내부 의 거품 규칙 을 제어 할 때 외부 순환 제어 변 수 를 결합 시 켜 야 하 는 것 은 이해 하기 어렵 고 실수 하기 쉬 운 부분 입 니 다!그러나 전체적으로 그 원 리 를 이해 하고 몇 번 더 생각 하 는 것 이 비교적 성공 적 으로 거품 순 서 를 실현 하 는 것 입 니 다!
다음은 보충 적 인 거품 정렬 의 기본 사상 이다. 인접 요소 간 의 비교 와 교환 을 통 해 키워드 가 작은 요 소 를 바닥 에서 위로 옮 기 고 물 아래 의 기포 처럼 점점 위로 거품 이 생 긴 다. 모든 거품 동작 은 정렬 해 야 할 서열 부분 을 순서 로 한다. 다음 에 거품 이 생 길 때 다시 질서 있 는 부분 을 확대 한다.전체 서열 이 질서 가 있 을 때 까지!
거품 이 생기 는 현상 은 상상 하기 쉽 습 니 다. c 언어 로 전환 하 는 형식 에서 주의해 야 할 부분 은 코드 에서 도 밝 혀 졌 습 니 다. 이 코드 는 비교적 쉬 운 것 입 니 다. 물론 연습 도 해 야 합 니 다. 단숨에 하 는 것 도 쉽 지 않 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.