ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 低调看直播体育app软件下载 >> C/C++jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 >> 中国实现立体快巴 快排、归并(再次实现)

中国实现立体快巴 快排、归并(再次实现)

来源:网络整理     时间:2016-08-08     关键词:中国实现立体快巴

本篇文章主要介绍了"中国实现立体快巴 快排、归并(再次实现)",主要涉及到中国实现立体快巴方面的内容,对于C/C++jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下: 刚刚CVTE笔试,想写个快排,居然没写出来、写出来、出来、来!!!简直了,打死自己再实现一遍吧!#include #inclu...

刚刚CVTE笔试,想写个快排,居然没写出来、写出来、出来、来!!!简直了,打死自己

再实现一遍吧!

#include 
#include 

void qsort(int first,int last,int* array,size_t size)
{
	int left = first;
	int right = last;
	if (first >= last)
		return;
	int key = array[first];
	int mid = first;
	while (first < last){
		while (first < last && array[last] >= key)
			--last;
		if (first < last){
			std::swap(array[first], array[last]);
			mid = last;
		}
		while (first < last&& array[first] <= key)
			++first;
		if (first < last){
			std::swap(array[first], array[last]);
			mid = first;
		}
	}
	qsort(left,mid-1,array,size);
	qsort(mid+1,right,array,size);
}
int main()
{
	int array[7] = { 2, 3, -3, 1, 5, 4, 6 };
	size_t size = sizeof(array) / sizeof(array[0]);
	qsort(0,size-1,array,size);

	system("pause");
	return 0;
}

顺便把归并也实现了一遍

#include 
#include 

void _mergearray(int* arr,int first,int mid, int last,int* p)//合并两个数组
{
	int i = first;
	int j = mid + 1;
	int m = mid;
	int n = last;
	int k = 0;
	while (i <= m && j <= n){
		if (arr[i] <= arr[j])
			p[k++] = arr[i++];
		else
			p[k++] = arr[j++];
	}
	while (i <= m)
		p[k++] = arr[i++];
	while (j <= n)
		p[k++] = arr[j++];
	for (int i = 0; i < k ; ++i)
		arr[first+i] = p[i];
}

void _mergeSort(int* arr,int first,int last,int* p )
{
	int mid = first + ((last - first) >> 1);
	if (first < last){
		_mergeSort(arr,first,mid,p);//使左边有序
		_mergeSort(arr, mid+1, last, p);//使右边有序
		_mergearray(arr,first,mid,last,p);//合并
	}
}

void mergeSort(int* arr,int size)
{
	int* p = new int[size];//p为辅助数组
	if (p == NULL)return;
	_mergeSort(arr,0,size-1,p);
	delete[] p;
}
int main()
{
	int array[7] = { 2, 3, -3, 1, 5, 4, 6 };
	int size = sizeof(array) / sizeof(array[0]);
	//qsort(0,size-1,array,size);
	mergeSort(array, size);

	system("pause");
	return 0;
}

《完》

以上就介绍了中国实现立体快巴 快排、归并(再次实现),包括了中国实现立体快巴方面的内容,希望对C/C++jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播有兴趣的朋友有所帮助。

本文网址链接:http://www.codes51.com/article/detail_3147465.html

中国实现立体快巴相关图片

中国实现立体快巴相关文章