用mysql写一个冒泡
时间: 2024-05-20 07:16:49 浏览: 12
排序的存储过程
DELIMITER //
CREATE PROCEDURE bubble_sort(INOUT arr VARCHAR(255))
BEGIN
DECLARE i INT DEFAULT 0;
DECLARE j INT DEFAULT 0;
DECLARE temp VARCHAR(255) DEFAULT '';
SET arr = TRIM(BOTH ',' FROM arr); -- 去除开头和结尾的逗号
IF LENGTH(arr) = 0 THEN -- 如果数组为空,则直接返回
RETURN;
END IF;
SET i = LENGTH(arr) - 1;
WHILE i > 0 DO
SET j = 0;
WHILE j < i DO
IF SUBSTRING_INDEX(arr, ',', j + 1) > SUBSTRING_INDEX(arr, ',', j + 2) THEN -- 比较相邻两个数的大小,如果前面的数大于后面的数,则交换位置
SET temp = SUBSTRING_INDEX(arr, ',', j + 2);
SET arr = CONCAT(SUBSTRING_INDEX(arr, ',', j), ',', temp, ',', SUBSTRING_INDEX(arr, ',', j + 1));
END IF;
SET j = j + 1;
END WHILE;
SET i = i - 1;
END WHILE;
END //
DELIMITER ;
调用存储过程:
SET @arr = '5,3,8,6,4';
CALL bubble_sort(@arr);
SELECT @arr;
输出结果:
'3,4,5,6,8'
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)