插入排序和选择排序
Posted echo1937
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了插入排序和选择排序相关的知识,希望对你有一定的参考价值。
插入排序:
1 #include <stdio.h> 2 #define LEN 5 3 4 int a[LEN] = {10, 5, 2, 4, 7}; 5 6 void print(void) 7 { 8 for (int i = 0; i < LEN; i++) 9 printf(" %d", a[i]); 10 printf(" "); 11 } 12 13 void insertion_sort(void) //该算法要求背诵 14 { 15 int j, key; 16 for (int i = 1; i < LEN; i++) 17 { 18 print(); 19 20 key = a[i]; 21 for (j = i - 1; j >= 0 && a[j] > key; j--) 22 a[j + 1] = a[j]; 23 24 a[j + 1] = key; 25 } 26 print(); 27 } 28 29 int main(void) 30 { 31 insertion_sort(); 32 return 0; 33 }
选择排序:
#include <stdio.h> #define LEN 5 int a[LEN] = {10, 5, 2, 4, 7}; void print(void) { for (int i = 0; i < LEN; i++) printf(" %d", a[i]); printf(" "); } void selection_sort(void) //该算法要求背诵 { int min, low; for (int i = 0; i < LEN - 1; i++) { print(); min = a[i]; low = i; for (int j = i + 1; j < LEN; j++) { if (a[j] < min) { min = a[j]; low = j; } } a[low] = a[i]; a[i] = min; } print(); } int main(void) { selection_sort(); return 0; }
以上是关于插入排序和选择排序的主要内容,如果未能解决你的问题,请参考以下文章
直接插入排序 ,折半插入排序 ,简单选择排序, 希尔排序 ,冒泡排序 ,快速排序 ,堆排序 ,归并排序的图示以及代码,十分清楚