冒泡优化和扩展

简介: 冒泡优化和扩展

前言

冒泡排序

优化提高效率

解析都在注释里面了


void bubble_sort(int arr[], int sz)//参数接收数组元素个数
{
  int i = 0;
  for(i=0; i<sz-1; i++){
    int flag = 1;//假设这⼀趟已经有序了
    int j = 0;
    for(j=0; j<sz-i-1; j++){
    if(arr[j] > arr[j+1]){
      flag = 0;//发⽣交换就说明,⽆序
      int tmp = arr[j];
      arr[j] = arr[j+1];
      arr[j+1] = tmp;
    }
    }
  if(flag == 1)//这⼀趟没交换就说明已经有序,后续⽆序排序了
    break;
  }
}
int main()
{
  int arr[] = {3,1,7,5,8,9,0,2,4,6};
  int sz = sizeof(arr)/sizeof(arr[0]);
  bubble_sort(arr, sz);
  for(i=0; i<sz; i++){
    printf("%d ", arr[i]);
  }
 return 0;
}



扩展同样提高效率,也可以用指针来做,思路清晰

af05fdbc3e774ac09af6cf7c432ee912.png

输出结果:

4ca22567bff74b92a68447d7d8acf169.png

相关文章
|
1月前
|
缓存 JavaScript 前端开发
如何优化事件委托以提高性能?
【10月更文挑战第29天】通过以上优化方法,可以在一定程度上提高事件委托的性能,使其在处理大量DOM元素的事件时更加高效和可靠,为用户提供更流畅的交互体验。在实际应用中,可以根据具体的项目场景和性能瓶颈,有针对性地选择和应用这些优化策略。
|
1月前
|
JavaScript 前端开发
事件委托的性能优化是否适用于所有类型的应用程序?
【10月更文挑战第29天】事件委托的性能优化在具有大量相似DOM元素、动态生成DOM元素以及对性能要求高且交互频繁的应用中具有显著优势,但对于DOM结构简单、事件处理逻辑复杂且对兼容性要求高的老旧浏览器应用等类型的程序,其适用性则相对有限。在实际开发中,需要根据具体的应用程序特点和需求来综合判断是否采用事件委托的性能优化策略。
|
1月前
|
JavaScript 前端开发 UED
事件冒泡的优点
【10月更文挑战第29天】事件冒泡在简化事件绑定与管理、提高代码的可维护性和可扩展性、提升性能和内存效率以及实现更灵活的交互设计等方面都具有显著的优点。在实际的JavaScript开发中,合理地运用事件冒泡机制能够有效地提高开发效率,优化页面性能,为用户创造更好的交互体验。
|
2月前
|
JavaScript UED
|
4月前
|
前端开发 JavaScript 开发者
掌握Web前端事件处理精髓:从事件冒泡到事件委托,轻松优化你的交互体验与代码性能!
【8月更文挑战第23天】在Web前端开发中,事件处理是实现用户交互的关键机制。其中,事件冒泡与事件委托是优化页面性能、简化代码的重要手段。事件冒泡是指事件从触发它的元素开始,沿着DOM树向上逐层传播至根节点的过程。通过阻止事件冒泡,可以控制事件的影响范围。而事件委托则是利用事件冒泡特性,在父元素上设置监听器来响应子元素的事件,这种方法减少了监听器的设置数量,特别适用于动态添加的子元素,提高了代码的可维护性和性能。掌握这两种技术,能帮助开发者构建更高效、更简洁的应用程序。
60 0
|
存储 JavaScript 前端开发
闭包是什么?有什么特性?对页面有什么影响?
闭包是什么?有什么特性?对页面有什么影响?
67 0
|
JavaScript 小程序 开发者
【微信小程序】冒泡事件与非冒泡事件、将文章数据从业务中分离、wxml的模块化
冒泡事件是指某个组件上的时间被触发后,事件还会向父级元素传递;父级元素还会继续向父级的父级传递,一直到页面的顶级元素。而非冒泡事件则不会向父级元素传递事件。
【微信小程序】冒泡事件与非冒泡事件、将文章数据从业务中分离、wxml的模块化
|
JavaScript 前端开发 大数据
虚拟滚动是怎么做性能优化的?
虚拟滚动是怎么做性能优化的?
290 0
|
存储 搜索推荐 算法
冒泡 VS 插入 VS 选择——谁更胜一筹?(附排序源码)
排序对于任何一个程序员来说,可能都不会陌生。你学的第一个算法,可能就是排序。大部分编程语言中,也都提供了排序函数。在平常的项目中,我们也经常会用到排序。
82 0
自下而上自动循环滚动
自下而上自动循环滚动
121 0
自下而上自动循环滚动