算法导论-1.排序算法
算法导论-1.排序算法<div id="cnblogs_post_body">排序算法是最基础的一类算法。主要排序算法包括选择排序、插入排序、冒泡排序、合并排序、堆排序和快速排序。把这些排序算法全部实现一边,再把《算法导论》对应章节后面的习题做一遍,确实是系统学习算法的一个不错的开端。
选择排序
选择排序的想法很简单,把需要排序的数组看成一堆扑克牌:先查一遍,抽出最小的作为第一个张;在剩下的牌堆里再查一遍,选出最小的作为第二个元素&hellip;&hellip;重复直到牌堆耗尽。想法简单的其代价就是运行时间为&Theta;(n&times;n):在查询A、2或3的时候,都要反复地比较其与K、Q的大小,直觉告诉我这样做没有意义。
<div class="cnblogs_code">void selectionSort(int* x, int length){ for(int i=0;i<length-1;i++){ int minValue = INT_MAX; int minPosition = 0; for(int j=i;j<length;j++){ if(x<minValue){ minValue=x; minPosition=j; } } int temp = x; x=x; x=temp; }}
页:
[1]