常见排序方法(冒泡排序、选择排序、插入排序、希尔排序和快速排序)


程序:

#include 
#include 
#include 
using namespace std;



int main()
{
	void bubblesort(int*,int);
	void directinsert(int*,int);
	void secletsort(int*,int);
	void quicksort(int*,int,int);
	void shellsort(int*,int,int*,int);
	int a[10] = {0,8,6,4,2,1,3,5,7,9};
	int incrmnts[3] = {1,3,5};

	cout << "the initial array is: ";
	for(int i=0;i<10;i++)
	{
		cout << a[i] << " ";
	}
	cout << endl;

	//bubblesort(a,10);
	//directinsert(a,10);
	//secletsort(a,10);
	quicksort(a,0,9);
	
	//shellsort(a,10,incrmnts,3);
	
	
	cout << "the sorted array is: ";
	for(int i=0;i<10;i++)
	{
		cout << a[i] << " ";
	}



	system("pause");//按任意键继续...
	return 0;
}


//冒泡排序
void bubblesort(int* a,int N)
{
	for(int i=1;ia[j+1])
			{
				int temp = a[j+1];
				a[j+1] = a[j];
				a[j] = temp;
			}
		}
	}
}

//直接插入排序
void directinsert(int* a,int N)
{
	int i,inserta,j;
	if(N<=1) return;
	for(i=0;iinserta && j>=0)
		{
			a[j+1] = a[j];
			j--;
		}
		a[j+1] = inserta;
	}	
}


//选择排序
void secletsort(int* a,int N)
{
	int i,j,k,min;
	for(i=0;i=upperbound) return;

	//以下为分左右两组程序
	int mid;
	int low = lowerbound;
	int up = upperbound;
	int target = a[lowerbound];
	while(lowtarget)&&(up>lowerbound))
			up--;
		if(low=0;k--)
	{
		step = stepset[k];
		for(i=step;i=0 && a[j]>inserta)
			{
				a[j+step] = a[j];
				j -= step;
			}
			a[j+step] = inserta;
		}
	}
}


你可能感兴趣的:(原创)