排序算法总结

排序算法总结

排序算法平均时间复杂度
冒泡排序O(n2)
选择排序O(n2)
插入排序O(n2)
希尔排序O(n1.5)
快速排序O(N*logN)
归并排序O(N*logN)
堆排序O(N*logN)
基数排序O(d(n+r))
一、冒泡排序(BubbleSort)
  1. 基本思想: 两个数比较大小,较大的数下沉,较小的数冒起来。
  2. 过程:
    1. 比较相邻的两个数据,如果第二个数小,就交换位置。
    2. 从后向前两两比较,一直到比较最前的两个数据。最终最小数被交换到起始位置,这样第一个最小数的位置就排好了。
    3. 继续重复上诉过程,依次酱2,3…n-1个最小数排好位置。

3.平均时间复杂度: O(n2)
4.C代码实现:

  1 #include <stdio.h>
  2 #include <stdbool.h>
  3 
  4 void BubbleSort(int Array_test[], int n){
  5 
  6     int i, j;
  7     bool flag;
  8     for ( i = n -1; i > 0; --i){
  9         flag = false;
 10         for ( j = 0; j < i; j ++)
 11             if ( Array_test[j] > Array_test[j+1]){
 12                 int temp = Array_test[j];
 13                 Array_test[j] = Array_test[j+1];
 14                 Array_test[j+1] = temp;
 15                 flag = true;
 16             }
 17         if (!flag)
 18             break;
 19     }
 20 }
 21 
 22 void main(){
 23 
 24     int i;
 25     int Array_test[10] = {23, 46, 37, 4, 18, 33, 80, 75, 28, 10};
 26 
 27     BubbleSort(Array_test, 10);
 28     printf("排序后的数组为:\n");
 29     for ( i = 0; i < 10; i++)
 30         if ( i < 9)
 31             printf("%d-", Array_test[i]);
 32         else
 33             printf("%d\n", Array_test[i]);
 34 }


二、选择排序
  1. 基本思想:
    在长度为N的无序数组中,第一次扁你n-1个数,找到最小的数值与第一个元素交换;
    低而磁遍历n-2个数,找到最小值与第二个元素交换;
    。。。
    第n-1次遍历,找到最小的数值与第n-1个元素减缓,完成排序。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值