wordpress抓取别人网站,网上商城是什么,中国建设银行网站北京网点,怎么做一个赚钱得网站05 选择排序 #xff08;Selection Sort#xff09; 原理#xff1a;每一次从待排序的数据元素中选出最小#xff08;或最大#xff09;的一个元素#xff0c;存放在序列的起始位置#xff0c;然后#xff0c;再从剩余未排序元素中继续寻找最小#xff08;大#xff… 05 选择排序 Selection Sort 原理每一次从待排序的数据元素中选出最小或最大的一个元素存放在序列的起始位置然后再从剩余未排序元素中继续寻找最小大元素然后放到已排序序列的末尾。以此类推直到全部待排序的数据元素排完。 void selection_sort(int arr[], int n) {for (int i 0;i n - 1;i) {int temp a[i];int t i;for (int j i 1;j n;j) {if (a[j] temp) {temp a[j];t j;} }a[t] a[i];a[i] temp;}
} 空间效率O(1) 时间效率最好情况O(N) 平均情况O(N^2) 最坏情况O(N^2) 稳定性相同元素相对位置变化情况不稳定 比较次数与初始状态无关 06 堆排序Heap Sort 堆排序是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构并同时满足堆积的性质即子结点的键值或索引总是小于或者大于它的父节点。 void heap_sort(int arr[], int n) {int i,temp;for (i (n - 2) / 2; i 0; i--)percdown(arr, n, i);for (i n - 1;i 0;i--) {temp arr[i];arr[i] arr[0];arr[0] temp;percdown(arr, i, 0);}
}void percdown(int arr[], int n, int i) {int child;int x arr[i];for (;i * 2 1 n - 1;i child) {child i * 2 1;if (child n - 1 arr[child 1] arr[child])child;if (x arr[child]) break;else arr[i] arr[child];}arr[i] x;
} 空间效率O(1) 时间效率最好情况O(Nlog2N) 平均情况O(Nlog2N) 最坏情况O(Nlog2N) 稳定性相同元素相对位置变化情况不稳定 转载于:https://www.cnblogs.com/wanghao-boke/p/10424339.html