swap 排序-在quicksort中使用swap的问题

问题描述

在quicksort中使用swap的问题

请问 这个swap有错么
void swap(int &a,int &b)
{
int c=a;
a=b;
b=c;
}

为什么我在quicksort(int * number,int n)
{
if(n<0)return;
int L=0;
int R=n-1;
while(L<R)
{
while(L<R)
R--;
swap(number[L],number[R]);
while(L<R)
L++;
swap(number[L],number[R]);
quicksort(number,L);
quicksort(number+L+1,n-L-1);
}
}
中使用这个 swap 会堵死
而使用 swap(int *a,int *b)则没事??

时间: 2025-01-19 16:24:21

swap 排序-在quicksort中使用swap的问题的相关文章

DigitalOcean在CentOS中添加Swap分区的方法

其实添加的方法有很多,这里只是官方帮助里面的一个方法 检查Swap空间 首先检查一下系统中有没有存在的Swap文件 swapon -s 如果返回信息为上图的话,则表示 Swap 文件不存在. 检查文件系统 在设置Swap文件之前,先检查检查一下是否有足够的硬盘 df -hal   创建并启用Swap文件 使用 dd 命令来创建 Swap 文件 dd if=/dev/zero of=/swapfile bs=1024 count=512k   格式化并激活Swap文件 格式化Swap分区 mksw

如何在CentOS中添加Swap?CentOS添加交换分区的教程

使用 DigitalOcean 有很长一段时间了,前几天在编译 PHP 的时候出现了进程被 killed 的状况,经过我的吐槽以及和别人交流后发现,是内存耗尽的缘故.其实是因为当时开着 MySQL 进程消耗了不少内存,后来觉得有必要手动添加一下 Swap(交换分区),这样以免以后再编译什么的时候进程被K . 关于 Linux 中 Swap(交换分区),类似于 Windows 的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况. 那么如何在 CentOS

横向滑动-Android中用首字母排序的listview中的item的滑动监听与listview的上下滑动冲突

问题描述 Android中用首字母排序的listview中的item的滑动监听与listview的上下滑动冲突 大神帮看看,我现在listview的item中我写了一个OnTouchListener,但是发现横向滑动的时候老是会触发listview的上下滑动事件,导致横向滑动很难滑出来,但是滑出来第一次后,后面就很容易划出来了!大神帮忙看看!!!感谢! 让人很是苦恼,这个该怎么处理呢?查过资料说改返回值为false,改了都滑不出来! /** * 侧滑显示删除按钮 */ private View.

解决linux中swapon /swap:失败:参数无效的问题

首先这个错误我发现并非是没有mkswap的缘故,而是btrfs根本不支持swapfile,解决的方法也很简单,就是把swapfile挂载到loopback就可以了 脚本代码如下  代码如下 复制代码 #!/bin/sh  #  # Copyright (C) Sebastian Philipp  #   set -e   swapsize="$1"  swapname="$2"   if [ -z "$swapsize" -o -z "

百度面试题:求一个已排序的数组中绝对值最小的元素

题目为: 有一个已经排序的数组(升序),数组中可能有正数.负数或0,求数组中元素的绝对值最小的数,要求,不能用顺序比较的方法(复杂度需要小于O(n)),可以使用任何语言实现 例如,数组{-20,-13,-4, 6, 77,200} ,绝对值最小的是-4. 这一题该如何求呢? 初步的解决思路是:     1.数组中的元素全为正,取最左边的数字:     2.数组中的元素全为负,取最右边的数字的绝对值:     3.数组中有正数有负数,就用二分法查找,判断中间元素的符号        a)中间元素为

算法的力量:位运算在排序与搜索中的应用

楔子: 问题:假设一个文件中有9亿条不重复的9位整数,现在要求对这个文件进行排序. 一般解题思路: 1.将数据导入到内存中 2.将数据进行排序 (比如插入排序.快速排序) 3.将排序好的数据存入文件 难题: 一个整数为4个字节 即使使用数组也需要900,000,000 * 4byte = 3.4G内存 对于32位系统,访问2G以上的内存非常困难,而且一般设备也没有这么多的物理内存 将数据完全导入到内存中的做法不现实 其他解决办法: 1.导入数据库运算 2.分段排序运算 3.使用bit位运算 解决

矩阵 排序-计算矩阵中d(i)的值,d为矩阵中所有点值的一个排序

问题描述 计算矩阵中d(i)的值,d为矩阵中所有点值的一个排序 解决方案 图太小,什么也看不见.无非就是二维数组循环,自己写下不难的.

PHP 中执行排序与 MySQL 中排序_php技巧

此文首发在 InfoQ 中文站.作者:明灵(dragon) , Fenng . Note:要转载的朋友请注意注明这篇文章的第一作者!这篇文章是dragon 朋友来邮探讨后他做的一个总结.在 DB 中排序还是在 应用程序中排序是个很有趣的话题,dragon 第一份邮件中其实已经总结的很好了,我添加了一点建议而已.现在放上来,与大家共享.这篇文章也投稿到了 InfoQ 中文站 . Q:列出在 PHP 中执行排序要优于在 MYSQL 中排序的原因?给一些必须在MYSQL中排序的实例? A:通常来说,执

clone模式在平衡排序二叉树实现中的应用

clone模式既prototype模式,是构造模式中的一种.其意图为:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 关键代码如下: virtual product * prototype::clone(){ return new prototype(this->datas); } virtual product * concreteprototype_1::clone(){ //return copy of self return new concreteprototype_