插入排序(指针)
来源:互联网 发布:安卓版全球网络电视apk 编辑:程序博客网 时间:2024/05/29 20:00
/*
#include<stdio.h>//实参和形参均为数组名
#define N 10
int input(int a[],int n)
{
int i;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
return 0;
}
int output(int a[],int n)
{
int i;
for(i=0;i<n;i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
int sort(int a[],int n)
{
int i,j;
int temp;
for(i=1;i<n;i++)
{
if(a[i]<a[i-1])
{
temp=a[i];
j=i-1;
while(a[j]>temp && j>=0)
{
a[j+1]=a[j];
j--;
}
a[j+1]=temp;
}
}
return 0;
}
int main()
{
int a[N];
printf("输入%d个整数:\n",N);
input(a,N);
printf("排序前数组元素的值:\n");
output(a,N);
sort(a,N);
printf("排序后数组元素的值:\n");
output(a,N);//值已经改变了
return 0;
}
*/
/*
#include<stdio.h>//实参是数组名,形参是指针变量 for的思路
#define N 10
int input(int *pr,int n)
{
int *pr_end=pr+n;
for(;pr<pr_end;pr++)
scanf("%d",pr);
return 0;
}
int output(int *pr,int n)
{
int *pr_end=pr+n;
for(;pr<pr_end;pr++)
printf("%5d",*pr);
printf("\n");
return 0;
}
int sort(int *pr,int n)
{
int *p,*q;
int *pr_end=pr+n;
int temp;
for(p=pr+1;p<pr_end;p++)
{
if(*p<*(p-1))
{
temp=*p;
*p=*(p-1);
for(q=p-2;*q>temp && q>=pr;q--)//for的思路
{
*(q+1)=*q;
}
*(q+1)=temp;
}
}
return 0;
}
int main()
{
int a[N];
printf("输入%d个整数:\n",N);
input(a,N);
printf("排序前数组元素的值:\n");
output(a,N);
sort(a,N);
printf("排序后数组元素的值:\n");
output(a,N);//值已经改变了
return 0;
}*/
#include<stdio.h>//实参是数组名,形参是指针变量
#define N 10
int input(int *pr,int n)
{
int *pr_end=pr+n;
for(;pr<pr_end;pr++)
scanf("%d",pr);
return 0;
}
int output(int *pr,int n)
{
int *pr_end=pr+n;
for(;pr<pr_end;pr++)
printf("%5d",*pr);
printf("\n");
return 0;
}
int sort(int *pr,int n)
{
int *p,*q;
int temp;
int *pr_end=pr+n;
for(p=pr+1;p<pr_end;p++)
{
if(*p<*(p-1))
{
temp=*p;
q=p-1;
while(*q>temp && q>=pr)
{
*(q+1)=*q;
q--;
}
*(q+1)=temp;
}
}
return 0;
}
int main()
{
int a[N];
printf("输入%d个整数:\n",N);
input(a,N);
printf("排序前数组元素的值:\n");
output(a,N);
sort(a,N);
printf("排序后数组元素的值:\n");
output(a,N);//值已经改变了
return 0;
}
/*
#include<stdio.h>//实参是指针变量,形参均是数组名
#define N 10
int input(int a[],int n)
{
int i;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
return 0;
}
int output(int a[],int n)
{
int i;
for(i=0;i<n;i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
int sort(int a[],int n)
{
int i,j;
int temp;
for(i=1;i<n;i++)
{
if(a[i]<a[i-1])
{
temp=a[i];
j=i-1;
while(a[j]>temp && j>=0)
{
a[j+1]=a[j];
j--;
}
a[j+1]=temp;
}
}
return 0;
}
int main()
{
int a[N];
int *p;
p=a;
printf("输入%d个整数:\n",N);
input(p,N);
printf("排序前数组元素的值:\n");
output(p,N);
sort(p,N);
printf("排序后数组元素的值:\n");
output(p,N);//值已经改变了
return 0;
}
*/
/*
#include<stdio.h>//实参是数组名,形参是数组变量
#define N 10
int input(int *pr,int n)
{
int *pr_end=pr+n;
for(;pr<pr_end;pr++)
scanf("%d",pr);
return 0;
}
int output(int *pr,int n)
{
int *pr_end=pr+n;
for(;pr<pr_end;pr++)
printf("%5d",*pr);
printf("\n");
return 0;
}
int sort(int *pr,int n)
{
int *p,*q;
int temp;
int *pr_end=pr+n;
for(p=pr+1;p<pr_end;p++)
{
if(*p<*(p-1))
{
temp=*p;
q=p-1;
while(*q>temp && q>=pr)
{
*(q+1)=*q;
q--;
}
*(q+1)=temp;
}
}
return 0;
}
int main()
{
int a[N];
int *p;
p=a;
printf("输入%d个整数:\n",N);
input(p,N);
printf("排序前数组元素的值:\n");
output(p,N);
sort(p,N);
printf("排序后数组元素的值:\n");
output(p,N);//值已经改变了
return 0;
}
*/
#include<stdio.h>//实参和形参均为数组名
#define N 10
int input(int a[],int n)
{
int i;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
return 0;
}
int output(int a[],int n)
{
int i;
for(i=0;i<n;i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
int sort(int a[],int n)
{
int i,j;
int temp;
for(i=1;i<n;i++)
{
if(a[i]<a[i-1])
{
temp=a[i];
j=i-1;
while(a[j]>temp && j>=0)
{
a[j+1]=a[j];
j--;
}
a[j+1]=temp;
}
}
return 0;
}
int main()
{
int a[N];
printf("输入%d个整数:\n",N);
input(a,N);
printf("排序前数组元素的值:\n");
output(a,N);
sort(a,N);
printf("排序后数组元素的值:\n");
output(a,N);//值已经改变了
return 0;
}
*/
/*
#include<stdio.h>//实参是数组名,形参是指针变量 for的思路
#define N 10
int input(int *pr,int n)
{
int *pr_end=pr+n;
for(;pr<pr_end;pr++)
scanf("%d",pr);
return 0;
}
int output(int *pr,int n)
{
int *pr_end=pr+n;
for(;pr<pr_end;pr++)
printf("%5d",*pr);
printf("\n");
return 0;
}
int sort(int *pr,int n)
{
int *p,*q;
int *pr_end=pr+n;
int temp;
for(p=pr+1;p<pr_end;p++)
{
if(*p<*(p-1))
{
temp=*p;
*p=*(p-1);
for(q=p-2;*q>temp && q>=pr;q--)//for的思路
{
*(q+1)=*q;
}
*(q+1)=temp;
}
}
return 0;
}
int main()
{
int a[N];
printf("输入%d个整数:\n",N);
input(a,N);
printf("排序前数组元素的值:\n");
output(a,N);
sort(a,N);
printf("排序后数组元素的值:\n");
output(a,N);//值已经改变了
return 0;
}*/
#include<stdio.h>//实参是数组名,形参是指针变量
#define N 10
int input(int *pr,int n)
{
int *pr_end=pr+n;
for(;pr<pr_end;pr++)
scanf("%d",pr);
return 0;
}
int output(int *pr,int n)
{
int *pr_end=pr+n;
for(;pr<pr_end;pr++)
printf("%5d",*pr);
printf("\n");
return 0;
}
int sort(int *pr,int n)
{
int *p,*q;
int temp;
int *pr_end=pr+n;
for(p=pr+1;p<pr_end;p++)
{
if(*p<*(p-1))
{
temp=*p;
q=p-1;
while(*q>temp && q>=pr)
{
*(q+1)=*q;
q--;
}
*(q+1)=temp;
}
}
return 0;
}
int main()
{
int a[N];
printf("输入%d个整数:\n",N);
input(a,N);
printf("排序前数组元素的值:\n");
output(a,N);
sort(a,N);
printf("排序后数组元素的值:\n");
output(a,N);//值已经改变了
return 0;
}
/*
#include<stdio.h>//实参是指针变量,形参均是数组名
#define N 10
int input(int a[],int n)
{
int i;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
return 0;
}
int output(int a[],int n)
{
int i;
for(i=0;i<n;i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
int sort(int a[],int n)
{
int i,j;
int temp;
for(i=1;i<n;i++)
{
if(a[i]<a[i-1])
{
temp=a[i];
j=i-1;
while(a[j]>temp && j>=0)
{
a[j+1]=a[j];
j--;
}
a[j+1]=temp;
}
}
return 0;
}
int main()
{
int a[N];
int *p;
p=a;
printf("输入%d个整数:\n",N);
input(p,N);
printf("排序前数组元素的值:\n");
output(p,N);
sort(p,N);
printf("排序后数组元素的值:\n");
output(p,N);//值已经改变了
return 0;
}
*/
/*
#include<stdio.h>//实参是数组名,形参是数组变量
#define N 10
int input(int *pr,int n)
{
int *pr_end=pr+n;
for(;pr<pr_end;pr++)
scanf("%d",pr);
return 0;
}
int output(int *pr,int n)
{
int *pr_end=pr+n;
for(;pr<pr_end;pr++)
printf("%5d",*pr);
printf("\n");
return 0;
}
int sort(int *pr,int n)
{
int *p,*q;
int temp;
int *pr_end=pr+n;
for(p=pr+1;p<pr_end;p++)
{
if(*p<*(p-1))
{
temp=*p;
q=p-1;
while(*q>temp && q>=pr)
{
*(q+1)=*q;
q--;
}
*(q+1)=temp;
}
}
return 0;
}
int main()
{
int a[N];
int *p;
p=a;
printf("输入%d个整数:\n",N);
input(p,N);
printf("排序前数组元素的值:\n");
output(p,N);
sort(p,N);
printf("排序后数组元素的值:\n");
output(p,N);//值已经改变了
return 0;
}
*/
阅读全文
0 0
- 插入排序(指针)
- 指针 插入排序分析(我都晕了)
- C++链表冒泡,归并,插入排序(纯指针)
- 用指针实现链表--插入排序
- 插入排序(折半插入)
- 插入排序(希尔排序、直接插入、折半插入排序)
- 数据结构-插入排序(直接插入排序+折半插入排序)
- 插入排序(简单插入&折半插入)
- 插入排序一(直接插入排序)
- 插入排序(普通插入 希尔排序)
- 算法---插入排序(直接插入排序)
- 内部排序之插入排序(直接插入排序,二分插入排序,希尔插入排序)
- 排序:插入排序(直接插入排序、Shell排序)
- 【排序】插入排序(直接插入排序、希尔排序)
- 【排序一】插入排序(直接插入排序&&希尔排序)
- 排序(之插入排序)
- 1.排序(插入排序)
- 排序(直接插入排序)
- 第一届蓝桥杯C/C++组编程题1 黑色星期五
- apache开启GZIP压缩
- switch的应用
- mysql安装教程
- Apache 与 CGI
- 插入排序(指针)
- Laravel 使用 laravel-page-speed 时出现style属性失效的一种原因
- JAVA利用字节流完成拷贝文件夹。
- 递归(汉诺塔)
- 动态内存分配
- 对一个人生日姓名进行操作(结构体)
- 页面背景-伪类选择器-相对定位-块和内联转换
- Android混合开发之WebViewJavascriptBridge实现JS与java安全交互
- 第一个用tikz画的图