插入排序一维数组和指针是很好用的:假如一个一维数组a[1,2,3,4,5],现有指针*p,则定义int *p=a;(意思是p指向数组a)如果p=a,则说明p指向a数组中的第一个元素1,同理p+1就是指向数组a中的第二个元素2.*p=a[0],*(p+1)=a[1],…以此类推
二维数组与指针有点难度:这牵涉到行指针和一维指针。一维指针就是从第一行的每个元素依前后顺序递推,第一行完了之后,第二行。而行指针则不是这样,p是先指向第一行的第一个元素,p+1就指向第二行的第一个元素。
行号 列号
指针(*(P+0)+0)指向第一...
一维数组和指针是很好用的:假如一个一维数组a[1,2,3,4,5],现有指针*p,则定义int *p=a;(意思是p指向数组a)如果p=a,则说明p指向a数组中的第一个元素1,同理p+1就是指向数组a中的第二个元素2.*p=a[0],*(p+1)=a[1],…以此类推
二维数组与指针有点难度:这牵涉到行指针和一维指针。一维指针就是从第一行的每个元素依前后顺序递推,第一行完了之后,第二行。而行指针则不是这样,p是先指向第一行的第一个元素,p+1就指向第二行的第一个元素。
行号 列号
指针(*(P+0)+0)指向第一行第一个元素,对应值为*(*(P+0)+0),
指针(*(P+0)+1)指向第一行第二个元素,对应值为*(*(P+0)+1)
指针(*(P+0)+2)指向第一行第三个元素,对应值为*(*(P+0)+2)
指针(*(P+1)+0)指向第二行第一个元素,对应值为*(*(P+1)+0),
指针(*(P+1)+1)指向第二行第二个元素,对应值为*(*(P+1)+1)
指针(*(P+1)+2)指向第二行第三个元素,对应值为*(*(P+1)+2)
.
.
.
以此类推
好好看看教材,多看几遍就会懂得。
二维指针**p
*p[n] 还是一个指针,不是一个值,当然不能改变值。
*(*p[n])才可以,*(*p[n]+1)是第二个。
//将数组在逻辑上划分为“完成区域”和“待排区域”,每完成“一趟”,完成区域++,待排区域—
初始时,完成区域为空,待排区域为n;
排序结束后,完成区域为n,待排区域为空。
// shuJuJieGou.paiXu.chaRuPaiXu.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include
using namespace std;
int* chaRuPaiXu(int a[],int n)//传入一个待排列数组a[]和其长度n
{
int temp;
for(int i=1;ij;k--)//移位;;不用等号因为a[k-1]已经可以使取得j了
{
a[k]=a[k-1];
}
a[j]=temp;//插入
}
}
}
cout<<"成功完成--插入排序!"<
本文档为【插入排序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。