Flutter Dart快速排序算法示例详解(flutter foreach)硬核推荐

随心笔谈2年前发布 admin
203 0 0

文章摘要

本文展示了快速排序算法的实现过程。快速排序是一种经典的分治算法,通过递归地将数组划分为较小的子数组来排序。具体来说,算法首先处理边界情况(数组长度小于等于1时直接返回),然后选择第一个元素作为基准值(splitData),并将数组中的元素分为三个部分:小于基准值的low数组,大于基准值的hight数组,以及等于基准值的mid数组。接着,对low和hight数组分别递归调用快速排序函数,最后将low、mid和hight数组合并返回。主函数中定义了一个包含11个元素的数组ary,并调用quickSort函数对其排序后打印结果。

void main() {
List<int> quickSort(List<int> arr) {
// 处理边界问题
if (arr.length <=1) {
return arr;
}
// 取出第一个值作为参考
int splitData=arr[0];
// 小于参考值的集合
List<int> low=[];
// 大于参考值的集合
List<int> hight=[];
// 与参考相等的集合
List<int> mid=[];
// 初次把参考值添加到mid中
mid.add(splitData);
for (int i=1; i < arr.length; i++) {
if (arr[i] < splitData) {
// 小于
low.add(arr[i]);
} else if (arr[i] > splitData) {
// 大于
hight.add(arr[i]);
} else {
// 等于
mid.add(arr[i]);
}
}
// 二分数据后,再继续递归整理
low=quickSort(low);
hight=quickSort(hight);
// 最后合并
return […low, …mid, …hight];
}
const List<int> ary=[4, 5, 1, 3, 6, 2, 5, 6, 7, 2, 4];
print(quickSort(ary));
}

© 版权声明

相关文章