本文主要是介绍选择排序的动画展示与实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
动画展示
双边选择排序动画展示_哔哩哔哩_bilibili
代码实现
#include <stdio.h>
#include "SelectSort.h"//选择排序swap(int* x, int* y)
{int temp = *x;*x = *y;*y = temp;
}void SelectSort(SlSoDataType* a, int n)
{int begin = 0;int end = n - 1;while (begin < end){int mini = begin;int maxi = begin;for (int i = begin + 1; i <= end; ++i){if (a[i] < a[mini])mini = i;if (a[i] > a[maxi])maxi = i;}swap(a + begin, a + mini);//max值在begin位置时会被换到mini处,需要去mini处找max值if (begin == maxi)maxi = mini;swap(a + end, a + maxi);++begin;--end;}
}void PrintfArr(int* a, int n)
{for (int i = 0; i < n; ++i)printf(" %d ", a[i]);printf("\n");
}int main()
{int a[] = {44, 3, 1, 2, 4, 23, 22, 11, 234, 1 };int size = sizeof(a) / sizeof(a[0]);SelectSort(a, size);PrintfArr(a, size);
}
这篇关于选择排序的动画展示与实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!