#include
#include
using namespace std;
int findMaxValue(int array_[], int sizeOf, int countSort=0)
{
int maxValue = 0;
for(int index = countSort; index maxValue)
maxValue = array_[index];
}
return maxValue;
}
int sortArray(int array_[], int sizeOf)
{
static int sortCounter = 0;
int maxValue = findMaxValue(array_, sizeOf, sortCounter);
int minValue = maxValue;
int minValueIndex;
for(int index = sortCounter; index < sizeOf; ++index)
{
if(array_[index] < minValue)
{
minValue = array_[index];
minValueIndex = index;
}
}
swap(array_[sortCounter], array_[minValueIndex]);
sortCounter += 1;
}
int main()
{
int array1[] = { 4, 6, 7, 3, 8, 2, 1, 9, 6432, 5 };
int array1Size = sizeof(array1) / sizeof(array1[0]);
for(int iii = 0; iii < array1Size; ++iii)
{
sortArray(array1, array1Size);
}
cout << "Printing aray1…" << endl;
for(int index=0; index < array1Size; ++index)
{
if(index == array1Size – 1)
cout << array1[index] << ".nn";
else
cout << array1[index] << "; ";
}
int maxValue = findMaxValue(array1, array1Size);
int userChoice = -1;
cout << "Enter a number from array1 between 1 and " << maxValue <> userChoice;
bool matchFound = false;
while(matchFound == false)
{
for(int index=0; index < array1Size; ++index)
{
if(userChoice == array1[index])
{
matchFound = true;
cout << "Your chosen number can be found in index " << index << " of array1." << endl;
break;
}
else if(index == array1Size – 1 && userChoice != array1[index])
{
cout << "Enter a number from array1 between 1 and " << maxValue <> userChoice;
}
}
该算法的最复杂的部分是嵌套循环。外环(nstartindex)的步骤,通过每个元素一个接一个。内循环(ncurrentindex)发现最小的元素在数组中从nstartindex和集合点它变nsmallestindex。最小的指数,然后开始指数互换。然后,外环(nstartindex)提出的一个元素,并重复该过程。
测验
1)选择排序的数组:{ 30,60,20,50,40,10 }。显示每个交换之后发生的阵列。
2)改写选择排序码以上按降序排序(最大的数首)。尽管这可能看起来复杂,其实是非常简单的。
2156

被折叠的 条评论
为什么被折叠?



