排序
1、选择排序
代码实现:
/* 2017年6月19日14:46:17 功能:选择排序的降序排序 */ #include"stdio.h" #define N 8 int main() { int i, j, m, temp; int a[N]; for(i = 0; i < N; i++) { printf("please input a number :" ); scanf("%d",&m); a[i] = m; } printf("The old array is: "); printf(" "); for(i = 0; i < N; i++) { printf("%d ",a[i] ); } printf(" " ); for(i = 0;i < N; i++) { for(j = i+1; j < N; j++) { if(a[i] < a[j]) { temp = a[i]; a[i] = a[j]; a[j] = temp; } } } printf("The new array is: "); printf(" "); for(i = 0; i < N; i++) { printf("%d ",a[i] ); } printf(" " ); return 0; } /* 总结: 在VC++6.0中显示的结果为: ———————————————————————————————— please input a number :2 please input a number :4 please input a number :8 please input a number :9 please input a number :6 please input a number :1 please input a number :9 please input a number :5 The old array is: 2 4 8 9 6 1 9 5 The new array is: 9 9 8 6 5 4 2 1 ———————————————————————————————— */
2、冒泡排序
代码实现:
/* 2017年6月19日15:17:40 功能:冒泡排序的降序排序 */ #include"stdio.h" #define N 8 int main() { int a[N]; int i, j, m, temp; for(i = 0; i < N; i++) { printf("please input a number :" ); scanf("%d",&m); a[i] = m; } printf("The old array is : "); printf(" "); for(i = 0; i < N; i++) { printf("%d ",a[i]); } printf(" " ); for(i = 0; i < N; i++) { for(j = 0; (j < N - i)&&(j+1 < N - i); j++) { if(a[j]< a[j+1]) { temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } } printf("The new array is : "); printf(" "); for(i = 0; i < N; i++) { printf("%d ",a[i]); } printf(" " ); return 0; } /* 总结: 在VC++6.0中显示的结果为: ———————————————————————————————— please input a number :2 please input a number :4 please input a number :8 please input a number :4 please input a number :9 please input a number :5 please input a number :3 please input a number :1 The old array is : 2 4 8 4 9 5 3 1 The new array is : 9 8 5 4 4 3 2 1 ———————————————————————————————— */
3、直接插入排序
代码实现:
/* 2017年6月21日10:51:16 功能:直接插入排序的降序 */ #include"stdio.h" #define N 8 int main() { int i, j, m, temp; int a[N]; for(i = 0; i < N; i++) { printf("please input a number :" ); scanf("%d",&m); a[i] = m; } printf("The old array is: "); printf(" "); for(i = 0; i < N; i++) { printf("%d ",a[i] ); } printf(" " ); for(i = 1; i < N; i++) { for(j = 0; j < i; j++ ) { if(a[j] < a[i]) { temp = a[j]; a[j] = a[i]; a[i] = temp; i = j; } } } printf("The new array is: "); printf(" "); for(i = 0; i < N; i++) { printf("%d ",a[i] ); } printf(" " ); return 0; } /* 总结: 在VC++6.0中的显示结果: ———————————————————————————————— please input a number :2 please input a number :7 please input a number :5 please input a number :4 please input a number :7 please input a number :5 please input a number :4 please input a number :9 The old array is: 2 7 5 4 7 5 4 9 The new array is: 9 7 7 5 5 4 4 2 ———————————————————————————————— */