首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我创建的这个气泡排序算法有什么问题?

我创建的这个气泡排序算法有什么问题?
EN

Stack Overflow用户
提问于 2016-03-13 20:59:07
回答 2查看 85关注 0票数 1
代码语言:javascript
运行
复制
int arraySize = 10;
int[] array = new int[30];

public void generateRandomArray() {
    for (int i=0; i < arraySize; i++) {
        array[i] = (int) (Math.random() * (10-1)+1);
    }
}

public void bubbleSort(){
    for (int i=0; i < arraySize; i++) {
        if (array[i] < array[i+1]) {
        } else if (array[i] > array[i+1]) {
            int storeNumber = array[i];
            array[i] = array[i+1];
            array[i+1] = storeNumber;
        }
    }
}

在我的驾驶课上:

代码语言:javascript
运行
复制
public class Driver {
    public static void main(String[] args) {
        DataOperations array = new DataOperations();
        array.generateRandomArray();
        array.printArray();
        array.bubbleSort();
        array.printArray();
    }
}

在泡沫出现之前,我会:

代码语言:javascript
运行
复制
0-1
1-8
2-1
3-2
4-9
5-1
6-7
7-2
8-5
9-3

在泡沫之后我得到了:

代码语言:javascript
运行
复制
0-1
1-1
2-2
3-8
4-1
5-7
6-2
7-5
8-3
9-0

我不太清楚到底是怎么回事。有人能帮我弄清楚吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-13 21:03:20

冒泡排序是O(n^2),您需要重复您的内环n次数。

代码语言:javascript
运行
复制
for(int j=0;j<arraySize;j++) {
for(int i=0;i<arraySize;i++){
    if(array[i]<array[i+1]){
    }else if(array[i]>array[i+1]){
        int storeNumber=array[i];
        array[i]=array[i+1];
        array[i+1]=storeNumber;
    } 
}
}
票数 3
EN

Stack Overflow用户

发布于 2016-03-13 21:04:15

你实现的泡沫类型是错误的。

代码语言:javascript
运行
复制
for(int i = 0; i < arraySize; i++){
    for(int j = arraySize-1; j > i; j--) {
         if(A[j] < A[j-1]){
              swap(A[j],A[j-1]);
          }
    }
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35975793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档