게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
c언어 퀵정렬 질문드립니다!
게시물ID : programmer_22208짧은주소 복사하기
작성자 : 로랜드의피
추천 : 0
조회수 : 509회
댓글수 : 1개
등록시간 : 2018/03/20 23:51:35
옵션
  • 본인삭제금지
배열의 크기를 입력받은후
배열의 크기만큼의 수를 입력 받은뒤 오름차순으로 정렬한 후 출력하는 프로그램입니다.
근데 여기서 밑줄친 부분을 어떻게 수정해야 배열 내 원소들 사이의 교환 회수를 출력할수 있을까요??
입력
10
4 3 7 8 0 5 2 1 6 9
출력 
24

이렇게요 


#include<stdio.h>
void quicksort(int number[10000],int first,int last){
   int i, j, pivot, temp;

   if(first<last){
      pivot=first;
      i=first;
      j=last;

      while(i<j){
         while(number[i]<=number[pivot]&&i<last)
            i++;
         while(number[j]>number[pivot])
            j--;
         if(i<j){
            temp=number[i];
            number[i]=number[j];
            number[j]=temp;
         }
      }

      temp=number[pivot];
      number[pivot]=number[j];
      number[j]=temp;
      quicksort(number,first,j-1);
      quicksort(number,j+1,last);

   }
}

int main(){
   int i, count, number[10000];

   printf("How many elements are u going to enter?: ");
   scanf("%d",&count);

   printf("Enter %d elements: ", count);
   for(i=0;i<count;i++)
      scanf("%d",&number[i]);

   quicksort(number,0,count-1);

   printf("Order of Sorted elements: ");
   for(i=0;i<count;i++)
      printf(" %d",number[i]);

   return 0;
}
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호