⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 it s a sorting c code which is using many kinds of sort algorithm
💻 C
字号:
#include <stdio.h>
#include <conio.h>

#define ELEMENT 200

void 
	bubble_sort(int array[], int),
	insertion_sort(int array[], int),
	selection_sort(int array[], int),
	quick_sort(int array[], int, int, int);

void main(void)
{
	int num, select;
	int i;
	int array[ELEMENT] = {NULL};
	
	while(select != 'q')
	{
		
		printf("How much are items?\n");
		scanf("%d",&num);	

		printf("Input Items\n");
		for(i = 0; i < num; i++)
		{
			printf("%d item\t:\t",i+1);
			scanf("%d",&array[i]);
		}
	
		printf("Select Number of Sorting Method\n");
		printf("1. Bubble Sort 2. Selection Sort 3. Insertion Sort 4. Quick Sort\n Press 'q' to end\n");
		select = getch();
		switch(select)
		{
			case '1':
				bubble_sort(array, num);
				break;
			case '2':
				selection_sort(array, num);
				break;
			case '3':
				insertion_sort(array, num);
				break;
			case '4':
				quick_sort(array, 0, num - 1, num);
				break;
		}
		for(i = 0; i < num; i ++)
		{
			printf("%d\t",array[i]);
		}
		printf("\n");
	}
		
}

void bubble_sort(int array[], int n)
{
	int temp;
	int i,j;

	for(i = 0; i < n; i++)
	{
		for(j = 0; j < (n-1); j++)
		{
			if( array[j] > array[j+1])
			{
				temp = array[j];
				array[j] = array[j+1];
				array[j+1] = temp;
			}
		}
	}
}
void insertion_sort(int array[], int n)
{
	int i, j;
	int temp;

	for( i = 2; i <= n; i++)
	{
		temp = array[i - 1];
		
		for( j = i - 2; i >= 0 && array[j] > temp; j--)
		{
			array[j + 1] = array[j];
		}
		array[j + 1] = temp;
	}
}
void selection_sort(int array[], int n)
{
	int i, j, least;
	int temp;

	for( i = 0; i < n - 1; i++)
	{
		least = i;
		for( j = i + 1; j < n; j++)
		{
			if( array[j] < array[least])
			{
				least = j;
			}
		}
		if( least != i)
		{
			temp = array[least];
			array[least] = array[i];
			array[i] = temp;
		}
	}
}
void quick_sort(int array[], int left, int right, int n)
{
	int i, j;
	int temp;
	int pivot;

	if(left < right)
	{
		pivot = array[right];
		
  		i = left - 1;
  		j = right;
		
  		do { 	
			do {
  				i++;
  			} while(array[i] < pivot);  

  			do {
  				j--;
  			} while(array[j] > pivot);

  			if(i < j)
			{
  				temp = array[i];
  				array[i] = array[j];
  				array[j] = temp;
  			}
			else
  				break;
  		} while(i < j);
  		
  		temp = array[i];
  		array[i] = array[right];
  		array[right] = temp;

  		quick_sort(array, left, i - 1, n);
  		quick_sort(array, i + 1, right, n);
  	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -