用mysql写一个冒泡
时间: 2024-05-20 11:16:49 浏览: 61
使用SQL实现的冒泡排序算法 mysql数据库
排序的存储过程
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'
阅读全文