龙空技术网

排序算法——选择排序

花离落又开 23

前言:

而今咱们对“各种排序算法的比较与移动次数有关吗”都比较着重,朋友们都想要了解一些“各种排序算法的比较与移动次数有关吗”的相关文章。那么小编在网摘上收集了一些有关“各种排序算法的比较与移动次数有关吗””的相关文章,希望看官们能喜欢,看官们一起来了解一下吧!

// 选择排序的方法static void SelectionSort(int[] arr){    // 获取数组的长度    int len = arr.Length;    // 外层循环控制排序的趟数,每趟都会找出一个最小或最大的元素    for (int i = 0; i < len - 1; i++)    {        // 记录当前最小或最大元素的索引        int minIndex = i;        // 内层循环控制比较的次数,每次都会寻找剩余元素中的最小或最大元素        for (int j = i + 1; j < len; j++)        {            // 如果找到比当前最小或最大元素更小或更大的元素,就更新最小或最大元素的索引            // 升序用小于,降序用大于            if (arr[j] < arr[minIndex])            {                minIndex = j;            }        }        // 如果最小或最大元素不是待排序数组的第一个元素,就交换它们的位置        if (minIndex != i)        {            int temp = arr[i];            arr[i] = arr[minIndex];            arr[minIndex] = temp;        }        PrintArray(arr);    }}static void PrintArray(int[] arr){    foreach(var item in arr){        Console.Write(item+" ");    }    Console.WriteLine();}// 测试代码int[] arr = {72, 54, 59, 30, 31, 78, 2, 77, 82, 72};// 调用选择排序方法,按照升序排序SelectionSort(arr);

最多有n-1次数据交换,时间复杂度O(n^2)

标签: #各种排序算法的比较与移动次数有关吗 #有什么排序算法 #选择排序计算公式 #选择排序计算公式怎么用