譚浩強先生C言語プログラム設計重要アルゴリズム総括
1364 ワード
第六章配列
はっぽうほう
基本思想:隣接する2つの数を比較するたびに、小さい数を先頭に(昇順配列の要求ですから!)し、1回が完了したら、次の2つの隣接比較を行います.
2 D配列の列を入れ替え、別の2 D配列に保存
2 D配列の最大要素のリングアルゴリズム
はっぽうほう
基本思想:隣接する2つの数を比較するたびに、小さい数を先頭に(昇順配列の要求ですから!)し、1回が完了したら、次の2つの隣接比較を行います.
#include
int main() {
int a[10];
int i, j, t;
for (i = 0; i < 10; i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
for (j = 0; j < 9 - i; j++) // for
{
if (a[j] > a[j + 1])
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
for (i = 0; i < 10; i++)
printf("%d ", a[i]);
}
2 D配列の列を入れ替え、別の2 D配列に保存
#include
int main() {
int a[2][3] = { {1,2,3},{4,5,6} };
int b[3][2], i, j;
for (i = 0; i < 2; i++)
for (j = 0; j < 3; j++)
b[j][i] = a[i][j];
for (i = 0; i < 3; i++)
{
for (j = 0; j < 2; j++)
printf("%d ", b[i][j]);
printf("
");
}
}
2 D配列の最大要素のリングアルゴリズム
#include
int main() {
int a[3][4] = { {1,2,3,4},{5,6,7,8},{-10,10,-5,2} };
int max = a[0][0];
int i, j, row = 0, colum = 0;
for (i = 0; i < 3; i++)
for (j = 0; j < 4; j++)
if (a[i][j] > max)
{
max = a[i][j];
row = i;
colum = j;
}
for (i = 0; i < 3; i++)
{
for (j = 0; j < 4; j++)
printf("%d ", a[i][j]);
printf("
");
}
printf("%d %d %d", row, colum, max);
}