0
我对编码还不熟悉,我一直试图用各种书籍教自己。 其中一个练习要求我检查一个随机数组[10]是否被排序。如果没有排序,我必须使用插入排序对数组进行排序。我的排序功能[数组]有什么问题?
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int findSmallestNumber (int values[], int index);
void swap (int values[], int firstIndex, int secondIndex);
void sort(int values[]);
void sort(int values[])
{
for (int i =0; i<10; i++)
{
int index = findSmallestNumber (values, i);
swap(values, i, index);
}
}
int findSmallestNumber (int values[], int index)
{
int index_of_smallest_number = index;
for (int i=index+1 ; i<10; i++)
{
if (values[i] < values[index_of_smallest_number])
{
index_of_smallest_number = i;
}
}
return index_of_smallest_number;
}
void swap (int values[], int firstIndex, int secondIndex)
{
int temp = values[firstIndex];
values[firstIndex] = values[secondIndex];
temp = values[secondIndex];
}
int main()
{
int array[10];
srand(time(NULL));
for (int i=0; i<10; i++)
{
array[i] = rand() % 100; //create an array with random numbers
}
sort(array);
}
该代码在没有任何编译器错误的情况下运行,但是它没有正确排列该数组。 这里是results when I run the full program
谢谢你的时间。
您的交换不换,你换左,最后一行的右侧。 – MikeMB
您是否一步步调试代码以查看逻辑的运行方式? –
@MikeMB O gosh,我不敢相信我犯了这样一个粗心的错误。谢谢你指出。 – PixelProgrammer