数据结构:五种排序,两个查找(递归和非递归)

这篇博客详细介绍了五种排序算法:冒泡排序、选择排序、直接插入排序、希尔排序和快速排序,包括各自的概念和代码演示。同时,讲解了两种查找方法——顺序查找和二分查找,包括递归与非递归实现。通过示例和动图帮助理解这些基础算法的工作原理。
摘要由CSDN通过智能技术生成

冒泡排序:

从左边开始把相邻的两个数两个两个进行比较,当一个元素大于右侧与它相邻的元素时,交换它们之间位置;反之,它们之间的位置不发生变化。冒泡排序是一种稳定的排序算法。

冒泡排序动图演示

 

代码演示

int i , j , temp;	//定义 外层循环变量 i 内层循环变量 j 临时变量 temp

for(i = 0; i < len - 1; i++){	//外层 控制 元素 比较多少趟
    
    for( j = 0 ; j < len - i - 1 ; j++ ){	//内层 控制 元素 一趟比较的次数
        
        if(arr[j] > arr[j+1]){	//	从小到大排序
            
            temp = arr[j];
            
            arr[j] = arr[j+1];
            
            arr[j+1] = temp;
            
        }
        
    }
    
}

选择排序

选择排序,找最大或者最小的元素 往前放,分成 已排序和待排序序列

注:选择排序不稳定,平均次数n(n-1)/2,  

代码演示

  void selectSort(int arr[] , int len){
      
      int i , j , temp  , min;
      
      for(i=0; i<len ; i++){
          
          min = i;  // min标记未排序第一个元素的位置
          
          for(j = i+1; j < len ; j++){	//找比min位置还小的元素
              
         
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值