您现在的位置是:主页 > news > wordpress mathjax/seo详细教程
wordpress mathjax/seo详细教程
admin2025/6/5 1:30:10【news】
简介wordpress mathjax,seo详细教程,绵阳的网站建设公司,网站建设选择一 算法描述 假设有n个元素,现在要把这些元素按照从小到大的顺序进行排序,那么算法步骤如下, 从n个元素中找出最小的元素,然后与第0个位置上的元素进行交换,参与查找的元素范围是[0, n-1],即第0个到第n-1…
wordpress mathjax,seo详细教程,绵阳的网站建设公司,网站建设选择一 算法描述
假设有n个元素,现在要把这些元素按照从小到大的顺序进行排序,那么算法步骤如下,
从n个元素中找出最小的元素,然后与第0个位置上的元素进行交换,参与查找的元素范围是[0, n-1],即第0个到第n-1…
一 算法描述
假设有n个元素,现在要把这些元素按照从小到大的顺序进行排序,那么算法步骤如下,
- 从n个元素中找出最小的元素,然后与第0个位置上的元素进行交换,参与查找的元素范围是[0, n-1],即第0个到第n-1个
- 从剩下n-1个元素中找出最小的元素,然后与第1个位置上的元素进行交换,参与查找的元素范围是[1, n-1],即第1个到第n-1个
- 从剩下n-2个元素中找出最小的元素,然后与第2个位置上的元素进行交换,参与查找的元素范围是[2, n-1],即第2个到第n-1个
- …直到剩下1个元素,排序结束,总共需要进行n-1轮查找
二 C代码
常规写法
void selectSort(int arr[], int len)
{int temp = 0;int minIndex = 0;for (int i = 0; i < len - 1; ++i) // 每一次循环就表示一轮查找,总共循环len-1次{/***** 从[i, len-1]范围中找出最小的元素的索引 *****/minIndex = i;for (int j = i+1; j < len; ++j){if (arr[j] < arr[minIndex]) // 如果发现更小的元素,就更新minIndexminIndex = j;}/*********************************************/if (minIndex != i) // 把最小的元素和第i个元素进行交换{temp = arr[i];arr[i] = arr[minIndex];arr[minIndex] = temp;}}
}
递归写法 (调用这个函数时start值设置为0就行了)
void selectSort(int arr[], int len, int start)
{if (start >= len-1) // 递归操作需要一个结束条件return;int temp = 0;int minIndex = start;for (int i = start + 1; i < len; ++i) // 在[start, len-1]的索引范围查找最小的元素 {if (arr[i] < arr[minIndex])minIndex = i;}if (minIndex != start) // 交换元素{temp = arr[start];arr[start] = arr[minIndex];arr[minIndex] = temp;}selectSort(arr, len, start+1); // 进行下一轮的查找交换操作
}
三 总结
理解选择排序的关键点就是每一轮查找,从无序的元素范围里把查找到的最小(最大)元素按顺序交换到起始位置。
所谓选择,就是从元素中选择最小(最大)的元素并放置到起始位置。
如果有写的不对的地方,希望能留言指正,谢谢阅读。