Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;气泡分选_C++_Arrays_Sorting_Bubble Sort - Fatal编程技术网

C++ C++;气泡分选

C++ C++;气泡分选,c++,arrays,sorting,bubble-sort,C++,Arrays,Sorting,Bubble Sort,嘿,我从我的课上得到了这个算法,叫做气泡排序。它在另一个内部使用两个“for”。但是,当我试图用“while”来做这件事时,它不起作用了,它们不是等价的吗 void bubbleSort(int v[], int n) { // void workingBubble(int v[], int n){ int fim = n - 1; // int i, fim; int i = 0; //

嘿,我从我的课上得到了这个算法,叫做气泡排序。它在另一个内部使用两个“for”。但是,当我试图用“while”来做这件事时,它不起作用了,它们不是等价的吗

void bubbleSort(int v[], int n) {   // void workingBubble(int v[], int n){
  int fim = n - 1;                  //      int i, fim;
  int i = 0;                        //      for(fim=n-1; fim>0; fim--){
  int aux;                          //          for(i=0; i<fim; i++){
  while (fim > 0) {                 //              if(v[i] > v[i+1]){
      while (i < fim) {             //                  int temp = v[i];
          if (v[i] > v[i + 1]) {    //                  v[i] = v[i+1];
              aux = v[i];           //                  v[i+1] = temp;
              v[i] = v[i + 1];      //              }
              v[i + 1] = aux;       //          }
          }                         //      }
          i++;                      // }
      }                             //
      fim--;                        //
}}
                            
void bubbleSort(intv[],intn){//void workingBubble(intv[],intn){
int fim=n-1;//int i,fim;
int i=0;//对于(fim=n-1;fim>0;fim--){
int aux;//对于(i=0;i0){//如果(v[i]>v[i+1]){
而(iv[i+1]){//v[i]=v[i+1];
aux=v[i];//v[i+1]=temp;
v[i]=v[i+1];/}
v[i+1]=aux;//}
}                         //      }
i++;//}
}                             //
职能指令手册--//
}}
我评论了一个在另一个旁边工作的,这样我可以比较,我认为它是一样的,但是用while而不是for

数组={10,2,8,11,5,3,27,1}

冒泡排序后的数组={2,8,10,5,3,11,1,27}


每次在内环之前将
i
重置为0:

void bubbleSort(int v[], int n) {
  int fim = n - 1;
  int i;
  int aux;
  while (fim > 0) {
      i = 0;
      while (i < fim) {
          if (v[i] > v[i + 1]) {
              aux = v[i];
              v[i] = v[i + 1];
              v[i + 1] = aux;
          }
          i++;
      }
      fim--;
  }
}
void bubbleSort(int v[],int n){
int fim=n-1;
int i;
int aux;
而(职能指令手册>0){
i=0;
而(iv[i+1]){
aux=v[i];
v[i]=v[i+1];
v[i+1]=辅助;
}
i++;
}
职能指令手册--;
}
}

OMG,我现在看到了。我想我只是累了,看不出来。谢谢