1.插入排序
#include"stdio.h"
#define N 5
int main()
{
//1 2 3 4 5
//2 1 3 4 5
int a[N]={1,2,3,4,5},i,j,tmp;
for(i=1;i<N;i++)
{
j=i-1;
tmp=a[i];
while(a[j]<tmp&&j>=0){
a[j+1]=a[j];
j--;
}
a[j+1]=tmp;
}
for(i=0;i<N;i++)
printf("%d ",a[i]);
return 0;
}
2.希尔排序
#include"stdio.h"
#define N 5
int main()
{
int a[N]={1,2,3,4,5,6,7,8,9,10},gap,i,j,tmp,k;
//1 2 3 4 5 6
//1和4组队,2和5组队,3和6组队,组间比较,1组先比
// 组内比较,4和1交换。。。。。。。
for(gap=N/2;gap>=1;gap/=2)//控制分组
{
for(i=0;i<gap;i++)//组间比较
{
for(j=i+gap加了组长;j<N;j+=gap)//组内比较
{
k=j-gap;
tmp=a[j];
while(k>=0&&a[k]<tmp)
{
a[k+gap]=a[k];
k-=gap;
}
a[k+gap]=tmp;
}
}
}
for(i=0;i<N;i++)
printf("%d ",a[i]);
return 0;
}
3.指针
#include<stdio.h>
#include"stdlib.h"
int main(){
int **p,n=10,m=10,i,j;
p=(int**)malloc(m*sizeof(int*));//申请指针的指针的动态内存
for(i=0;i<m;i++)
{
p[i]=(int*)malloc(n*sizeof(int));//在第二维的数组里申请内存
}
for(i=0;i<m;i++)//赋值
for(j=0;j<n;j++)
p[i][j]=i*j;
for(i=0;i<m;i++)//输出
for(j=0;j<n;j++)
printf("%d ",p[i][j]);
return 0;
}
标签:11,tmp,main,21,10,int,gap,课堂,include
From: https://www.cnblogs.com/lulixiu1999/p/17852412.html