Loading

插入排序

 

 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 //插入排序
 5 void insert_sort(int arr[], int lsize);
 6 //交换函数
 7 void Swap_ele(int *prev, int *late);
 8 //遍历数组
 9 void PrintfArr(int *arr);
10 
11 int main()
12 {
13 int arr[6] = { 3, 6, 1, 2, 9, 7 };
14 int n = sizeof arr / sizeof *arr;
15 printf("%d\n", n);
16 PrintfArr(arr, n);
17 printf("\n");
18 insert_sort(arr, sizeof arr / sizeof *arr);
19 PrintfArr(arr, sizeof arr / sizeof *arr);
20 printf("\n");
21 return 0;
22 }
23 
24 //交换函数
25 void Swap_ele(int *prev, int *late)
26 {
27 int n;
28 n = *prev;
29 *prev = *late;
30 *late = n;
31 }
32 
33 //插入排序
34 void insert_sort(int arr[], int lsize)
35 {
36 int i, j;
37 
38 for (i = 0; i < lsize; i++)
39 {
40 
41 for (j = i ; j >= 0 && j < lsize - 1; j--)
42 {
43 int n = arr[j ];
44 if (arr[j ] < arr[j-1])
45 {
46 /*arr[j ] = arr[j-1];
47 arr[j] = n;*/
48 Swap_ele(&arr[j], &arr[j-1]);
49 }
50 
51 }
52 }
53 }
54 
55 //遍历数组
56 void PrintfArr(int arr[],int n)
57 {
58 for (int i = 0; i < n ;i++)
59 {
60 printf("%d ", arr[i]);
61 }
62 }

 

posted @ 2019-09-07 13:17  小飞猪咯咯  阅读(122)  评论(0编辑  收藏  举报