排序算法总结
文章平均质量分 66
狂舞暴风
这个作者很懒,什么都没留下…
展开
-
【排序】01.冒泡排序(升序)
冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。//冒泡排序法#includeusing namespace std;int main原创 2013-08-28 00:43:21 · 829 阅读 · 0 评论 -
【排序】03.选择排序(升序)
选择排序的思想:对比数组中前一个元素跟后一个元素的大小,如果后面的元素比前面的元素小则用一个变量temp来记住他的位置;接着第二次比较,前面“后一个元素”现变成了“前一个元素”,继续跟他的“后一个元素”进行比较,如果后面的元素比他要小则用变量temp记住它在数组中的位置(下标),等到循环结束的时候,我们应该找到了最小的那个数的下标了;然后进行判断,如果这个元素的下标不是第一个元素的下标原创 2013-08-29 11:05:14 · 930 阅读 · 0 评论 -
【排序】02.交换排序(升序)
交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。交换排序是不稳定的排序。//冒泡排序法#includeusing namespace std;int main(){ int arr[]={9,3,5,2,4,1,8}; int i,j; int temp=0; int arrlen=0; arrlen=sizeof(arr原创 2013-08-29 00:52:31 · 684 阅读 · 0 评论 -
【排序】04.插入排序(升序)
插入排序的思想:将原来的序列分成有序序列和无序序列两部分,然后把无序序列的各个元素加入到有序序列中。具体做法为:将第一个元素作为有序序列,然后把第二个元素和第一个元素比较,如果大于第一个元素,则吧第二个元素放在有序序列的末尾,也就是有序序列的第二个元素;现在有序序列为两个元素,无序序列的元素减少了一个。将无序序列的第一个元素(原序列的第三个元素)和有序序列的最后一个元素比较,如果大于,原创 2013-08-29 17:14:09 · 865 阅读 · 0 评论 -
【排序】05.快速排序(升序)
快速排序的基本思想是:先从数列中取出一个数作为基准数。分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。再对左右区间重复第二步,直到各区间只有一个数。快速排序是不稳定的排序算法。//快速排序#includeusing namespace std;void quick_sort(int arr[],int low,int high){原创 2013-09-02 00:49:31 · 1099 阅读 · 0 评论