2016-05-14 12 views
-1

バブルソートが機能しない理由を理解できません。誰かが私の間違いを説明したり訂正したりすると、私はとても幸せになれます。静的なものを動的なものにコピーすることによって、動的配列をソートする必要があります。あなたのsort()機能でバブルソートアルゴリズムで間違いが見つかりません

#include "stdafx.h" 
#include <iostream> 
using namespace std; 

int *sort(int arr[],int size) 
{ 
    int *newArray = new int [size]; 
    for(int i=0;i<size;i++) 
     newArray[i] = arr[i]; 
    bool swapped = true; 
    int j =0; 
    while(swapped) 
    { 
    swapped = false; 
    j++; 
    for(int k=0;k<size-j;k++) 
    { 
     if(newArray[k]> newArray[k+1]) 
     { 
      int temp = newArray[k]; 
      newArray[k] = newArray[k+1]; 
       newArray[k+1]= temp;  
      } 
     } 
    } 
return newArray; 
} 

int main() 
{ 
    int a[9]; 

for(int j = 0;j<9;j++) 
    a[j]= rand()%100+1;  
sort(a,9); 

for(int i=0;i<9;i++) 
     cout << a[i] << endl; 


system("pause"); 
    return 0; 

} 
+8

「バブルソートを書いた」それはあなたの間違いです。 –

+0

私たちは同じことをする百万の方法を学び、次に2つまたは3つの良いものだけを使います。バブルの並べ替えは間違いなく即座に忘れるものです。私は非常に数週間のソートアルゴリズムを勉強し、より速いものを設計しようとするいくつかの時間を過ごすことをお勧めします。 D – Aaron3468

+2

[いくつかのソートアルゴリズムの関連する視覚化](https://www.youtube.com/watch?v=kPRA0W1kECg)でソーティングの質問に答えることができます。 – doug65536

答えて

5

あなたはNEWARRAY作成、およびNEWARRAYを並べ替え、そして今ソートされNEWARRAYを返します。

main()関数では、sort()を呼び出し、それが返すソートされた配列は無視しますが、ソートされていない元の配列を表示します。

関連する問題