发生的阵列

来源:互联网 发布:三国杀网络错误请重试 编辑:程序博客网 时间:2024/05/02 00:46
#include#includeusing 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";elsecout << 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)改写选择排序码以上按降序排序(最大的数首)。尽管这可能看起来复杂其实是非常简单的


0 0
原创粉丝点击