选择法排序,冒泡排序,递归排序
来源:互联网 发布:360网络测速手机版 编辑:程序博客网 时间:2024/05/02 00:25
#include <stdlib.h>//选择排序void SelectSort(int *p, const int length){ if (p == NULL) { return; } for (int i = 0; i<length; i++) { int k = i; //记录一轮找到最小值的下标 for (int j = i+1; j<length; j++) { if (p[k] > p[j]) { k = j; } } int temp = p[k]; p[k] = p[i]; p[i] = temp; }}//冒泡排序void BubbleSort(int *p, const int length){ if (p == NULL) { return; } for (int i = 0; i<length; i++) { for (int j = i+1; j<length; j++) { if (p[i] > p[j]) { int temp = p[j]; p[j] = p[i]; p[i] = temp; } } }}//递归选择法排序int RecursiveSelectSort(int *p, int length){ if (p == NULL || 1 == length) { return 0; } int k = 0; for(int i = 0; i<length; i++) //找到最小值的下标 { if (p[k] > p[i]) { k = i; } } int temp = p[k]; p[k] = p[0]; p[0] = temp; p++; //找到最小值后,数组向前进一步 length--; //长度当然减小一步 RecursiveSelectSort(p, length); //找下一个最小值 return 1;}int main(){ int a[7] = {3, 8, 5, 7, 4, 2, 1}; //SelectSort(a, 7); //BubbleSort(a, 7); RecursiveSelectSort(a, 7); return 1;}