각종 정렬 알고리즘 및 프로그램

1261 단어 데이터 구조
。。。제목 은 며칠 동안 게 으 름 을 피 웠 는데 새벽 까지 쫓 아 다 니 는 것 도 힘 들 어.............................................
본론 을 시작 하 겠 습 니 다.
성명: 특별한 설명 이 없 을 때 정렬 된 데이터 집합 을 다음 과 같은 유형의 구조 배열 로 표시 한다 고 가정 합 니 다.(이 성명 은 다음 정렬 알고리즘 에 도 적 용 됩 니 다)
struct records{
keytype key;
fields other;
};
typedef records LIST[maxsize];//n 개의 배열 요소 가 있다 고 가정 하면 다음 정렬 은 특별한 설명 이 없 으 면 모두 오름차 순 으로 정렬 됩 니 다.
1. 기포 정렬
간단 한 정렬 법
알고리즘 은 다음 과 같 습 니 다.
void Sort(int n,LIST A)
{
	int x,y;
	for(i=1;i<=n-1;i++)
	{
		for(j=n;j>=i+1;j++)
		{
			if(A[j].key
시간 복잡 도 는 C (n ^ 2) 이다.
2. 정렬 삽입
#define -999999999 INF
void Sort(int n,LIST A)
{
	int i,j;
	A[0].key=INF;
	for(i=1;i<=n;i++)
	{
		j=i;
		while(A[j].key
시간 복잡성 은 O (n ^ 2)
3. 정렬 선택
void Sort(int n,LIST A)
{
	keytype lowkey;
	int lowindex;
	for(i=1;i<=n;i++)//    i<=n,    i<=n-1  
	{
		lowindex=i;
		lowkey=A[i].key;
		for(j=i;j<=n;j++)
		{
			if(A[j].key
시간 복잡 도 는 O (n ^ 2)
현실 에 서 는 기록 이 크 면 기록 위 치 를 조정 하 는 시간 을 줄 이기 위해 한 배열 로 기록 한 지침 을 저장 할 수 있 고 교환 할 때 기록 지침 의 상대 적 위 치 를 교환 하면 된다.정렬 의 결 과 는 기 록 된 지침 을 기 록 된 키워드 에 따라 줄 이지 않 는 순서 입 니 다.

좋은 웹페이지 즐겨찾기