本系列为《数据结构》(严蔚敏48集视频)学习笔记,温故而知新,IT从业者,夯实基础,书常读常新!
1 for(i = 1; i <= n; i++) 2 for (j = 0; j <=n; j++) 3 { 4 c[i,j]=0; 5 for (k = 0; k <= n; k++) 6 c[i,j] += a[i,k]*b[k,j]; 7 }
1 void select_sort(int a[], int n) 2 { 3 //将a中整数序列重新排列成自小到大有序的整数序列 4 for (int i = 0; i < n-1; ++i) 5 { 6 j = i; 7 for (int k = i+1; k < n; ++k) 8 { 9 if (a[k] < a[j]) 10 j = k; 11 if (j != i) a[j] <--> a[i] 12 } 13 } 14 }
例题3:
1 void bubble_sort(int a[], int n) 2 { 3 //将a中整数序列重新排列成自小到大有序的整数序列 4 for (int i = n-1, change = TRUE; i > 1 && change; --i) 5 { 6 change = FALSE; 7 for (int j = 0; j < i; ++j) 8 { 9 if (a[j] > a[j+1]) 10 {a[j] <--> a[j+1]; 11 change = TRUE;} 12 } 13 } 14 }
1 #include<stdlib.h> 2 #include "structure.h" 3 4 #include <iostream> 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.cnblogs.com/zhangbc/p/6429101.html