冒泡排序,选择排序,直接插入排序

简介: 🐰冒泡排序 🐰选择排序 🐰直接插入排序

🚀🚀🚀大家觉不错的话,就恳求大家点点关注,点点小爱心,指点指点🚀🚀🚀

目录

🐰冒泡排序

🐰选择排序

🐰直接插入排序


🐰冒泡排序

从左到右,相邻元素进行比较。每次比较之后,就会找到待排数据中最大的一个或者最小的一个,这个数就会从待排数据的最右边冒出来。

以从升序为例,第一次比较后,所有数中最大的那个数就会浮到最右边;第二轮比较后,所有数中第二大的那个数就会浮到倒数第二个位置……就这样一轮一轮地比较,最后实现从小到大排序。

BE029271-EB2F-4479-A577-73241DD58769.gif

1. //升序
2. #include<stdio.h>
3. void Print(int arr[],int len)
4. {
5. for(int i=0;i<len;i++)
6.     {
7. printf("%d ",arr[i]);
8.     }
9. printf("\n");
10. }
11. void Buble_sort(int arr[],int len)
12. {
13. for(int i=0;i<len-1;i++)
14.     {
15. for(int j=0;j<len-i-1;j++)
16.         {
17. if(arr[j]>arr[j+1])
18.             {
19. int temp=arr[j];
20.                 arr[j]=arr[j+1];
21.                 arr[j+1]=temp;
22.             }
23.         }
24.     }
25. Print(arr,len);
26. }
27. int main()
28. {
29. int arr[]={9,8,7,6,0,5,4,3,2,1};
30. int len=sizeof(arr)/sizeof(*arr);
31. Buble_sort(arr,len);
32. return 0;
33. }

🐰选择排序

选择排序(Choose sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的中数据元素选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。

D282D086-4371-43BA-BF36-2A4291F2452A.gif

1. //升序
2. #include<stdio.h>
3. void Print(int arr[],int len)
4. {
5. for(int i=0;i<len;i++)
6.     {
7. printf("%d ",arr[i]);
8.     }
9. printf("\n");
10. }
11. void Choose_sort(int arr[],int len)
12. {
13. for(int i=0;i<len;i++)
14.     {
15. for(int j=i+1;j<len;j++)
16.         {
17. if(arr[i]>arr[j])
18.             {
19. int temp=arr[j];
20.                 arr[j]=arr[i];
21.                 arr[i]=temp;
22.             }
23.         }
24.     }
25. Print(arr,len);
26. }
27. int main()
28. {
29. int arr[]={9,8,7,6,0,5,4,3,2,1};
30. int len=sizeof(arr)/sizeof(*arr);
31. Choose_sort(arr,len);
32. return 0;
33. }

🐰直接插入排序

将待排序序列分为两部分,一部分有序一部分无序,我们把第一个元素看作有序序列,从第二个元素到最后为无序序列,将无序序列中每一个元素依次插入到有序序列的合适位置–从小到大(从大到小)。

3986853A-8832-40F1-B7BE-A514D30CBCA5.gif

1. #include<stdio.h>
2. void Print(int arr[],int len)
3. {
4. for(int i=0;i<len;i++)
5.     {
6. printf("%d ",arr[i]);
7.     }
8. printf("\n");
9. }
10. void Insert_sort(int arr[],int len)
11. {
12. int i,j;
13. for( i=0;i<len;i++)
14.     {
15. int temp=arr[i];
16. for( j=i-1;j>=0;j--)
17.         {
18. if(temp<arr[j])
19.             {
20.                 arr[j+1]=arr[j];
21.             }
22. else
23.             {
24. break;
25.             }
26.         }
27.         arr[j+1]=temp;
28.     }
29. Print(arr,len);
30. }
31. int main()
32. {
33. int arr[]={9,8,7,6,0,5,4,3,2,1};
34. int len=sizeof(arr)/sizeof(*arr);
35. Insert_sort(arr,len);
36. return 0;
37. }

🌸🌸🌸如果大家还有不懂或者建议都可以发在评论区,我们共同探讨,共同学习,共同进步。谢谢大家! 🌸🌸🌸



相关文章
|
7月前
|
算法 搜索推荐 C++
C++017-C++冒泡排序与插入排序
C++017-C++冒泡排序与插入排序
C++017-C++冒泡排序与插入排序
|
机器学习/深度学习 算法 搜索推荐
算法之选择排序、冒泡排序、插入排序
一、 评估算法优劣的核心指标是什么? (1)时间复杂度(流程决定) (2)额外空间复杂度(流程决定) (3)常数项时间(实现细节决定
47 0
|
存储 搜索推荐 Java
【排序算法】冒泡排序、选择排序、插入排序
【排序算法】冒泡排序、选择排序、插入排序
112 0
【排序算法】冒泡排序、选择排序、插入排序
|
算法 搜索推荐
冒泡排序与选择排序详解
冒泡排序与选择排序详解
|
算法 搜索推荐
简单选择排序,直接插入排序、冒泡排序
简单选择排序,直接插入排序、冒泡排序
|
算法 搜索推荐 索引
03_1排序算法:冒泡排序、选择排序、插入排序
03_1排序算法:冒泡排序、选择排序、插入排序
179 0
03_1排序算法:冒泡排序、选择排序、插入排序
冒泡排序、插入排序、选择排序
冒泡排序、插入排序、选择排序
|
搜索推荐
冒泡排序与插入排序
冒泡排序与插入排序
冒泡排序与插入排序