C++で挿入ソート

挿入ソートのプログラム。
左側から順番にソートしていく。ある程度並んでいるものに大しては早いが実行時間はO(n^2)

#include <ctime>
#include <cstdlib>
#include <iostream>
using namespace	std;
 
void insertsort(int *a, int n){
  int j, x;
  for(int i=1; i<n; i++){
    x = a[i];
    for (j=i-1; 0<=j && a[j] > x; j--)
      a[j+1] = a[j];
    a[j+1] = x;
  }
}
 
void print_array(int *a, int size){
  for (int i=0; i<size; i++){
    cout << a[i] << " ";
  }
  cout << endl;
}
 
int main(){
  srand(time(NULL));
  int size = 10;
  int a[size];
  for (int i=0; i<size; i++){
    a[i] = rand()%50;
  }
  cout << "before" << endl;
  print_array(a, size);
  cout << "after" << endl;
  insertsort(a, size);
  print_array(a, size);
}
 
最終更新:2010年03月05日 19:32
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。