插入排序 、冒泡排序、选择排序、希尔排序、快速排序、归并排序、堆排序、基数排序的C语言实现

插入排序 、冒泡排序、选择排序、希尔排序、快速排序、归并排序、堆排序、基数排序的C语言实现,第1张

插入排序 、冒泡排序、选择排序、希尔排序、快速排序、归并排序、堆排序、基数排序的C语言实现

代码如下:

#include 

using namespace std;

//直接插入排序 
void InsertSort(int *a,int len){
	int i,j,tmp;
	for(i=1;i=0;j--){
			if(tmpa[j+1])
			{
				a[j]=a[j+1];
				a[j+1]=tmp;
			}
		}
	}
} 

//选择排序
void Select(int *a,int len){
	int i, j;
	int min;
	for(i=0;i=0;i--) heapify(arr,i,len-1);
	
	for(i=len-1;i>0;i--){
		swap(&arr[0],&arr[i]);
		heapify(arr,0,i-1);
	}
}
//基数排序
int findmax(int *arr,int len){
	int max=arr[0];
	for(int i=1;imax) max=arr[i]; 
	}
	return max;
} 
void RadixSort(int *arr,int base,int len){
	int i;
	int result[len];
	int bucket[10]={0};
	for(i=0;i=0;i--){
		int exp=(arr[i]/base)%10;
		result[bucket[exp]-1]=arr[i];
		bucket[exp]--;
	}
	memcpy(arr,result,len*sizeof(int));
}
void Radix(int *arr,int len){
	int max=findmax(arr,len);
	int base;
	for(base=1;max/base>0;base*=10){
		RadixSort(arr,base,len);
	}
}
int main(){
	int arr[10]={1,2,3333,43,55,68,777,888,9,11};
//	int arr[10]={278,109,063,930,589,184,505,069,008,083 };
	int arr1[5]={10,11,12,13,14};
	
//	cout<<&arr[0]<
						

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/3970066.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-21
下一篇 2022-10-21

发表评论

登录后才能评论

评论列表(0条)

保存