java实现的排序算法总结

这篇博客汇总了快速排序、冒泡排序、简单插入排序和选择排序的Java和Python实现。通过代码示例展示了这些经典排序算法的详细步骤,便于理解和应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上查了好多资料,不同排序算法的实现可能有多种,但网上有一些放到代码中无法运行,各种错误,并且有些并不是最优算法,以下为本人整理的比较靠谱的代码:

 

1 快速排序:

public class QuickSort {

public static void sort(int a[], int low, int hight) {

int i, j, index;

if (low > hight) {

return;

}

i = low;

j = hight;

index = a[i]; // 用子表的第一个记录做基准

while (i < j) { // 从表的两端交替向中间扫描

while (i < j && a[j] >= index)

j--;

if (i < j)

a[i++] = a[j];// 用比基准小的记录替换低位记录

while (i < j && a[i] < index)

i++;

if (i < j) // 用比基准大的记录替换高位记录

a[j--] = a[i];

}

a[i] = index;// 将基准数值替换回 a[i]

sort(a, low, i - 1); // 对低子表进行递归排序

sort(a, i + 1, hight); // 对高子表进行递归排序

 

}

 

python快速排序;

def quick_sort(data):
    if len(data)>=2:
        mid=data[len(data)//2]
        left,right=[],[]
        data.remove(mid)
        for num in data:
            if num>mid:
                right.append[num]
            else:
                left.append[num]
        return quick_sort(left)+mid+quick_sort(right)
    else:
        return data

2 冒泡排序:

public void sort(int[] arr){

int len=arr.length;

int temp=0;

for(int i=0;i<len;i++){

for(int j=0;j<len-i-1;j++){

if(arr[j]>arr[j+1]){

temp=arr[j+1];

arr[j+1]=arr[j];

arr[j]=temp;}

}

System.out.println(arr);

}

3 简单插入排序

public class InsertSort {

public static void insertSort(int[] a) {

int i, j, insertNote;// 要插入的数据

for (i = 1; i < a.length; i++) {// 从数组的第二个元素开始循环将数组中的元素插入

insertNote = a[i];// 设置数组中的第2个元素为第一次循环要插入的数据

j = i - 1;

while (j >= 0 && insertNote < a[j]) {

a[j + 1] = a[j];// 如果要插入的元素小于第j个元素,就将第j个元素向后移动

j--;

}

a[j + 1] = insertNote;// 直到要插入的元素不小于第j个元素,将insertNote插入到数组中

}

}

4 选择排序:

public static void selectSort(int[] a) {

if (a == null || a.length <= 0) {

return;

}

for (int i = 0; i < a.length; i++) {

int temp = a[i];

int flag = i; // 将当前下标定义为最小值下标

for (int j = i + 1; j < a.length; j++) {

if (a[j] < temp) {// a[j] < temp 从小到大排序;a[j] > temp 从大到小排序

temp = a[j];

flag = j; // 如果有小于当前最小值的关键字将此关键字的下标赋值给flag

}

}

if (flag != i) {

a[flag] = a[i];

a[i] = temp;

}

}

}

 

 

 

 

 

 

内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值