大佬教程收集整理的这篇文章主要介绍了选择排序(C++)算法(超详细),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
For startScan = 0 to the next-to-last array subscript Set index to startScan Set minIndex to startScan Set minValue to arraY[startScan] For index = (startScan + 1) to the last subscript in the array If arraY[index] is less than minValue Set minValue to arraY[index] Set minIndex to index End If Increment index End For Set arraY[R_203_11845@inIndex] to arraY[startScan] Set arraY[startScan] to minValue End For与冒泡排序一样,选择排序使用一对嵌套循环,在这个例子中是两个 for 循环。
void SELEctionSort (int arraY[],int sizE) { int startScan,minIndex,minValue; for (startScan = 0; startScan < (size - 1); startScan++) { minIndex = startScan; minValue = arraY[startScan]; for (int index = startScan + 1; index < size; index++) { if (arraY[index] < minvalue) { minValue = arraY[index]; minIndex = index; } } arraY[R_203_11845@inIndex] = arraY[startScan]; arraY[startScan] = minValue; } }如前所述,选择排序需要交换的次数要少于冒泡排序。事实上,正如上例所示,它每一趟只需要交换一个数据。外部循环的每一次迭代都可以将一个值放置到正确的位置,不仅如此,己经正确的值和数组位置在后面的排序中还无须再次检测。
//This program uses the SELEction sort algorithm to sort an array in ascending order. #include <iostream> using namespace std; //Function prototypes void SELEctionSort (int [],int); void showArray(const int [],int); int main() { const int SIZE = 6; // Array of unsorted values int values[SIZE] = {5,7,2,8,9,1}; // Display the values cout << "The unsorted values are\n"; showArray(values,SIZE); //Sort the array SELEctionSort(values,SIZE); // Display the values again cout << "The sorted values are\n"; showArray(values,SIZE); return 0; } void SELEctionSort(int arraY[],minValue; for (startScan = 0; startScan < (size - 1); startScan++) { minIndex = startScan; minValue = arraY[startScan]; for(int index = startScan + 1; index < size; index++) { if (arraY[index] < minvalue) { minValue = arraY[index]; minIndex = index; } } arraY[R_203_11845@inIndex] = arraY[startScan]; arraY[startScan] = minValue; } } void showArray(const int arraY[],int sizE) { for (int count = 0; count < size; count++) cout << array [count] << " "; cout << endl; }程序输出结果:
The unsorted values are
5 7 2 8 9 1
The sorted values are
1 2 5 7 8 9
以上是大佬教程为你收集整理的选择排序(C++)算法(超详细)全部内容,希望文章能够帮你解决选择排序(C++)算法(超详细)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。