数组的插入排序
但是,却出现了死循环。不知应该怎样修改。另外,我在修改时经常出现覆盖的现象,怎样避免呢?以下是代码:
以下是程序代码:
void insert(float a[], int& n, float x){
for(int i = n - 1; i > 0; i--)
if(a[i] > x)
for(int j = (n - 1); j >= i; j--) a[j] = a[j - 1];
a[i] = x;
++n;
}
另外,我参考了答案,它很简短。我想用 for 语句来写,可是不成功。请指点。
void insert(float a[], int& n, float x){
int i = n;
while(i > 0 && a[i - 1] > x)
a[i--] = a[i - 1];
a[i] = x;
++n;
}
相关推荐
C++实现插入排序对整数数组排序
利用插入排序,对整数数组排序 根据如下插入排序基本思想编程: 一个数显然是有序的,因此规模为1的排序问题能够求解; 如果能够为n-1个数排序,那么当有n个数时,只需先将前n-1个数排好序,再将最后一个数插入前面这n-1个有序数列中的合适位置即可。 例如: 要对3,6,2,4从小到大排序: 1、考虑规模为1的问题,即数字3,一个数显然是有序的; 2、规模为1的问题求解完毕后,加入新的数字6,将其放在3后面,得到序列3,6,从而解决了规模为2的问题; 3、规模为2的问题求解完毕后,加入新的数字2,将其放在3前面,得到序列2,3,6,从而解决了规模为3的问题; 4、规模为3的问题求解完毕后,
插入排序算法(动态数组实现)
插入排序算法(动态数组实现) printf("--------插入排序算法的实现--------\n"); printf("输入数组的大小length:\n"); int length=0; scanf("%d",&length); /****动态分配内存初始化数组***********************/ int * array = (int*)malloc(length * sizeof(int)); init(array,length); print_array(array,length); insert_sort(array,length); free(array);//释放动态数组空间
php插入排序法实现数组排序实例
主要介绍了php插入排序法实现数组排序,实例分析了插入排序法的原理与具体的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
js代码-插入排序排列数组
js代码-插入排序排列数组
php插入排序法实现数组排序实例_.docx
php插入排序法实现数组排序实例_.docx



