void SelectIndexArray(int count ,int *array, int *indexs)
{
int minIndex = 0;
for (int i = 0; i < count - 1; i++) {
minIndex = i;
for (int j = minIndex + 1; j < count; j++) {
if ( * (array + * (indexs + minIndex)) > * (array + * (indexs+ j))) {
minIndex = j;
}
}
if (minIndex != i) {
int temp = * (indexs + minIndex);
*(indexs + minIndex) = *(indexs + i);
*(indexs + i) = temp;
}
}
for (int i = 0; i < count; i++) {
printf("a[%2d] = %2d\n",*(indexs + i), *(array + *(indexs + i)));
}
}
void bubbleIndexArray(int count , int *array, int *indexs)
{
int flag = 1;
for (int i = 0; i < count - 1 && 1 == flag; i++) {
flag = 0;
for (int j = 0; j < count - i - 1; j++) {
if ((* (array + *(indexs + j)) < (*(array + *(indexs + j + 1))))) {
int temp = *(indexs + j);
*(indexs + j) = *(indexs + j + 1);
*(indexs + j + 1) = temp;
flag = 1;
}
}
}
for (int i = 0; i < count; i++) {
printf("[%2d]: %2d\n", *(indexs + i) , *(array + *(indexs + i)));
}
}
void insertIndexArray(int count , int *array, int *indexs)
{
for (int i = 1; i < count; i++) {
int j = i;
int temp = *(array + j);
int tempIndex = j;
while (j > 0 && temp < (*(array + *(indexs + j - 1)))) {
*(indexs + j) = *(indexs + j - 1);
j--;
}
*(indexs + j) = tempIndex;
}
for (int i = 0; i < count; i++) {
printf("[%2d]: %2d\n", *(indexs + i) , *(array + *(indexs + i)));
}
}
排序数组 选择 冒泡 插入
最新推荐文章于 2022-05-20 10:16:25 发布