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