- 1#include 2#include "structure.h"3 4#include 5 using namespace std;
- 6 7 8 //矩阵乘法
- 9 int * *matrixMultiplcate(int * *a, int * *b, int n) 10 {
- 11 int * *c;
- 12 c = (int * *) malloc(sizeof(int * ) * n);
- 13
- for (int m = 0; m < n; m++) 14 c[m] = (int * ) malloc(sizeof(int) * n);
- 15 16
- for (int i = 0; i < n; ++i) 17
- for (int j = 0; j < n; ++j) 18 {
- 19 c[i][j] = 0;
- 20
- for (int k = 0; k < n; ++k) 21 c[i][j] += a[i][k] * b[k][j];
- 22
- }
- 23
- return c;
- 24
- }
- 25 26 27 void dispalayMatrix() 28 {
- 29 int a[5][5] = {
- {
- 1,
- 2
- },
- {
- 3,
- 4,
- 5
- },
- {
- 6
- },
- {
- 7
- },
- {
- 0,
- 8
- }
- };
- 30 int b[5][5] = {
- {
- 1,
- 2
- },
- {
- 3,
- 4,
- 5
- },
- {
- 6
- },
- {
- 7
- },
- {
- 0,
- 8
- }
- };
- 31 int * *p;
- 32 int i,
- j,
- n = 5;
- 33 34 p = (int * *) malloc(sizeof(int * ) * n);
- 35
- for (int m = 0; m < n; m++) 36 p[m] = (int * ) malloc(sizeof(int) * n);
- 37 38 cout << "原矩阵:" << endl;
- 39
- for (i = 0; i < n; ++i) 40 {
- 41
- for (j = 0; j < n; ++j) 42 {
- 43 p[i][j] = a[i][j];
- 44 cout << a[i][j] << "\t";
- 45
- }
- 46 cout << endl;
- 47
- }
- 48 cout << endl;
- 49 50 int * *c = matrixMultiplcate(p, p, n);
- 51 cout << "新矩阵:" << endl;
- 52
- for (i = 0; i < n; ++i) 53 {
- 54
- for (j = 0; j < n; ++j) 55 cout << c[i][j] << "\t";
- 56 cout << endl;
- 57
- }
- 58
- }
- 59 60 61 //选择排序
- 62 int * select_sort(int a[], int n) 63 {
- 64 //将a中整数序列重新排列成自小到大有序的整数序列
- 65 int j,
- temp = 0;
- 66
- for (int i = 0; i < n - 1; ++i) 67 {
- 68 j = i;
- 69
- for (int k = i + 1; k < n; ++k) 70 {
- 71
- if (a[k] < a[j]) 72 j = k;
- 73
- if (j != i) 74 {
- 75 temp = a[j];
- 76 a[j] = a[i];
- 77 a[i] = temp;
- 78
- }
- 79
- }
- 80
- }
- 81
- return a;
- 82
- }
- 83 84 85 void display_select_sort() 86 {
- 87 int a[10];
- 88 int i = 0;
- 89
- for (i = 10; i > 0; i--) 90 a[10 - i] = i;
- 91 92 cout << "原始数组:" << endl;
- 93
- for (i = 0; i < 10; i++) 94 cout << a[i] << "\t";
- 95 96 int * new_a = select_sort(a, 10);
- 97 cout << "选择排序后数组:" << endl;
- 98
- for (i = 0; i < 10; i++) 99 cout << new_a[i] << "\t";
- 100
- }
- 101 102 103 //冒泡排序
- 104 int * bubble_sort(int a[], int n) 105 {
- 106 //将a中整数序列重新排列成自小到大有序的整数序列
- 107 bool change = true;
- 108 int temp = 0;
- 109
- for (int i = n - 1; i > 0 && change; --i) 110 {
- 111 change = false;
- 112
- for (int j = 0; j < i; ++j) 113 {
- 114
- if (a[j] > a[j + 1]) 115 {
- 116 temp = a[j];
- 117 a[j] = a[j + 1];
- 118 a[j + 1] = temp;
- 119 change = true;
- 120
- }
- 121
- }
- 122
- }
- 123
- return a;
- 124
- }
- 125 126 127 void display_bubble_sort() 128 {
- 129 int a[10];
- 130 int i = 0;
- 131
- for (i = 10; i > 0; i--) 132 a[10 - i] = i;
- 133 134 cout << "原始数组:" << endl;
- 135
- for (i = 0; i < 10; i++) 136 cout << a[i] << "\t";
- 137 138 int * new_a = bubble_sort(a, 10);
- 139 cout << "冒泡排序后数组:" << endl;
- 140
- for (i = 0; i < 10; i++) 141 cout << new_a[i] << "\t";
- 142
- }
来源: http://www.bubuko.com/infodetail-1954908.html