C语言——几种经典的排序算法
经典排序之冒泡排序
#define SIZE 5 int main() { int a[SIZE] = {0}; //循环输入 for(int i=0;i<SIZE;i++) { scanf("%d",&a[i]); } //冒泡排序核心 for(int i=0;i<SIZE-1;i++) { for(int j=0;j<SIZE-1-i;j++) { if(a[j]>a[j+1]) { int temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } } //遍历输出 for(int i=0;i<SIZE;i++) { printf("%d ",a[i]); } }
选择排序:
//经典排序算法 - 选择排序Selection sort
//查找数组中最小的数,和第一个元素进行交换
1 #define SIZE 5 2 int main() 3 { 4 int a[SIZE] = {0}; 5 //循环输入 6 for(int i=0;i<SIZE;i++) 7 { 8 scanf("%d",&a[i]); 9 } 10 11 for(int i=0;i<SIZE-1;i++) 12 { 13 int k = i; 14 for(int j=i+1;j<SIZE;j++) 15 { 16 if(a[k]>a[j]) 17 { 18 k = j; 19 } 20 } 21 if(k != i) 22 { 23 int temp = a[k]; 24 a[k] = a[i]; 25 a[i] = temp; 26 } 27 } 28 29 //遍历输出 30 for(int i=0;i<SIZE;i++) 31 { 32 printf("%d ",a[i]); 33 } 34 }
内容原创-可转载-请保留原地址