本文目录
C语言编程插入法排序
算法描述一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下:从第一个元素开始,该元素可以认为已经被排序取出下一个元素,在已经排序的元素序列中从后向前扫描如果该元素(已排序)大于新元素,将该元素移到下一位置重复步骤3,直到找到已排序的元素小于或者等于新元素的位置将新元素插入到该位置后重复步骤2~5如果比较操作的代价比交换操作大的话,可以采用二分查找法来减少比较操作的数目。该算法可以认为是插入排序的一个变种,称为二分查找排序。范例程式码void insertion_sort(int array, int first, int last) { int i,j; int temp; for (i = first+1; i《=last;i++) { temp = array = temp; } }
C语言插入排序由小到大的代码
C语言插入排序由小到大的代码如下:
int main()
{
int a;
int i,j,temp=0;
int k,x=0;
printf(“输入10个数:\n“);
for(i=0;i《10;i++)scanf(“%d“,&a);
for(i=0;i《9;i++)
{
k = i;
for(j=i+1;j《10;j++)
if(a)
k = j;
temp=a;
a;
a=temp;
}
printf(“排序后:\n“);
for(i=0;i《10;i++)
printf(“%d “,a);
getchar();getchar();
}
扩展资料:
数学函数
所在函数库为math.h、stdio.h、string.h、float.h
int abs(int i) 返回整型参数i的绝对值
double cabs(struct complex znum) 返回复数znum的绝对值
double fabs(double x) 返回双精度参数x的绝对值
long labs(long n) 返回长整型参数n的绝对值
double exp(double x) 返回指数函数ex的值
double frexp(double value,int *eptr) 返回value=x*2n中x的值,n存贮在eptr中
double ldexp(double value,int exp); 返回value*2exp的值
double log(double x) 返回logex的值
double log10(double x) 返回log10x的值
double pow(double x,double y) 返回x^y的值
double pow10(int p) 返回10^p的值
double sqrt(double x) 返回+√x的值
参考资料来源:百度百科-C语言函数
c语言插入排序法
插入排序(insertion sort)如果需要对一个小型数组进行升序排列,那么可以选用插入排序,插入排序可以用打牌时对摸起的牌根据牌的点数来对其进行插入排列来描述。可以把左手中的牌比做已经摸起的牌,即已经被排列好的牌,左手可以容纳的牌数的空间可以假想为和要摸的牌的总数相同;而在桌子上的那部分没摸的牌则是未被排序的牌,这二者的关系可以抽象为数组中已经被排序好的部分和未被排序好的部分。一开始摸起的第一张牌不需要排序,可以认定其为已排序的牌。如果用外层循环for来表示摸起的牌的话,则可以抽象为:// 对象数组// 桌子上的牌int A = {5,1,3,6,2,4};// 从数组的第二个元素开始抽取for(int i = 1; i 《 sizeof A/sizeof A; ++i){int pick = A = pick;}// 对于有N个元素的数组A,采用插入排序法排序时,当外层循环进行了N-1次后排序完毕