越秀区手机版网站建设,兰州网络推广效果,深圳网址网站建设公司,品牌推广文案排序基础---插入排序
插入排序是一种比较排序。
选出一个临时变量tmp.
然后弄一个end#xff0c;end最初可以是0.
那么tmp便应该是a[end1]
最终的目的是为了使一个序列有序#xff0c;所以应该让tmp依次与前[0,end],进行比较最后插入到合适的位置。
void insert_sort(…排序基础---插入排序
插入排序是一种比较排序。
选出一个临时变量tmp.
然后弄一个endend最初可以是0.
那么tmp便应该是a[end1]
最终的目的是为了使一个序列有序所以应该让tmp依次与前[0,end],进行比较最后插入到合适的位置。
void insert_sort(int* a, int n)
{for (int i 0; i n - 1; i){int end i;int tmp a[end 1];while (end 0){if (a[end] tmp){a[end 1] a[end];}else{break;}--end;}a[end 1] tmp;}
}这里有一个易错点就是执行else跳出循环。
因为会有两种情况需要将tmp插入到a[end1]的位置。
情况1
while循环完全执行完成此时end0,实际上就是在数组的最前面插入。及在a[0]插入。
情况2:
while循环并没有完全执行完成是由于break跳出了while循环。
此时是在a[end1]的位置将数字插入。
所以应该注意while循环。
在c中开辟二维数组
vector开辟
vectorvectorint maze(N, vectorint(M));
使用vector 开辟优点
使用std::vector的好处是内存管理更加安全不需要手动管理内存的分配和释放。
maze.size()为其行数。
maze[0].size()可以访问其列数。
new用算符开辟
int** mazenew int*[N];
for(int i0;iN;i)
{
maze[i]new int[M];
}释放
for(int i0;iN;i)
{
delete[] maze[i];
}
delete[] maze;