void sort_int_array(int A[], int n) {
int i, j, h, k, O[n];
/* assume that A[0] to A[n-1] have valid values */
for (i=1; i<n; i++) {
/* swap A[i] left into correct position */
for (j=i-1; j>=0 && A[j+1] <= A[j]; j--) {
int_swap(&A[j], &A[j+1]);
for (k=0; k<n; k++) {
for (h = 0; h < k; h++) {
if (A[k] == O[h]) {
break;
}
else {
O[k] = A[k];
}
}
}
}
}
}
我试图只将排序数组中的不同值写入另一个数组。函数的第一部分对数组进行排序,但是当我将其写入新数组时,它会返回排序后的数组并且不会删除副本。
例如。输入:4 5 6 7 6 5 4.
输出:4 4 5 5 6 6 7.
想要的输出:4 5 6 7