有人能解答一下吗,请问这是直接插入排序吗?感觉像是冒泡排序,这是我自己写的,刚学习不太懂
void InsertSort(ElemType A[], int len) {
int i, j;
ElemType insertVal;
for (j = 1; j < len; j++) {
insertVal = A[j];
for (i = j - 1; i >= 0; i--) {
if (A[i] > insertVal) {
A[i + 1] = A[i];
A[i] = insertVal;
}
}
}
}
和下面的直接插入排序有什么区别?
void InsertSort(ElemType *A, int len) {
int i, j;
ElemType insertVal;
for (j = 1; j < len; j++) {
insertVal = A[j];
for (i = j - 1; i >= 0; i--) {
if(A[i] > insertVal){
A[i + 1] = A[i];
}
else {
break;
}
}
A[i + 1] = insertVal;
}
}