栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

插入排序 、冒泡排序、选择排序、希尔排序、快速排序、归并排序、堆排序、基数排序的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;j-=step){
			if(tmp0;step/=2){
		for(i=0;ia[left]){
				left++;
				continue;
			}
			a[right]=a[left];
			right--;
			moving=2;
			continue;
		} 
	} 
	a[left]=tmp;
	Quick(a,left);
	Quick(a+left+1,len-1-left);	 
} 
//归并排序(只做有序的合并)
void merge1(int *a1,int *a2,int *a3,int len1,int len2){
	int i=0,left=0,right=0;
	while(leftend) return;
	
	if((son+1<=end)&&(arr[son]arr[son]) return;

	swap(&arr[dad],&arr[son]);
	
	heapify(arr,son,end);	
}
void HeapSort(int *arr,int len){
	int i;
	for(i=(len-1)/2;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]<
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/332827.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号