冒泡排序

 private void swap(int[] arrays, int i, int j) { int temp; temp = arrays[i]; arrays[i] = arrays[j]; arrays[j] = temp; } public int[] arrayIntSort(int[] array) { for (int i = 1; i < array.length; i++) { for (int j = 0; j < array.length - i; j++) { if (array[j] > array[j + 1]) { swap(array, j, j + 1); } } } return array; }

快速排序

private void quickSort(int[] array, int start, int end) { int left = start; int right = end; if (left < right) { int temp = array[left]; while (left != right) { while (left < right && temp <= array[right]) right--; array[left] = array[right]; while (left < right && temp >= array[left]) left++; array[right] = array[left]; } array[right] = temp; quickSort(array, start, left - 1); quickSort(array, right + 1, end); } }

c++冒泡排序写法


void swap(jint *arrays, int i, int j) {int temp;temp = arrays[i];arrays[i] = arrays[j];arrays[j] = temp;
}JNIEXPORT jintArray JNICALL
Java_com_cpf_ndkdemo_MainActivity_arrayIntSortByNative(JNIEnv *env, jobject instance,jintArray array_) {jint *array = env->GetIntArrayElements(array_, NULL); int length = env->GetArrayLength(array_); for (int i = 1; i < length; i++) { for (int j = 0; j < length - i; j++) { if (array[j] > array[j + 1]) { swap(array, j, j + 1); } } } jintArray jintArray = env->NewIntArray(length); env->SetIntArrayRegion(jintArray, 0, length, array); env->ReleaseIntArrayElements(array_, array, 0); return jintArray; } 

c++快速排序写法


void fastSort(jint *array, jint start, jint end) {int left = start;int right = end;if (left < right) { int temp = array[left]; while (left != right) { while (left < right && temp <= array[right]) right--; array[left] = array[right]; while (left < right && temp >= array[left]) left++; array[right] = array[left]; } array[right] = temp; fastSort(array, start, left - 1); fastSort(array, right + 1, end); } } JNIEXPORT jintArray JNICALL Java_com_cpf_ndkdemo_MainActivity_arrayFastIntSortByNative(JNIEnv *env, jobject instance, jintArray array_, jint start, jint end) { jint *array = env->GetIntArrayElements(array_, NULL); fastSort(array, start, end); jintArray jintArray = env->NewIntArray(end + 1); env->SetIntArrayRegion(jintArray, 0, end + 1, array); env->ReleaseIntArrayElements(array_, array, 0); return jintArray; } 

快速排序波动大,冒泡排序更稳定,数据量越大快速排序速度优势越明显;

在数据大多数顺序正确的情况下冒泡排序可能更快,而数据越混乱快速排序越快;

转载于:https://www.cnblogs.com/xgjblog/p/9413063.html

安卓快速排序与冒泡排序相关推荐

  1. python实现冒泡排序算法的非递归版本_python排序算法速度比较:快速排序,归并排序,冒泡排序...

    前言 原理就不在这里说了,好多大神肯定比我这个初学者讲的好很多,推荐去B站看视频讲解,跟着手敲代码 为什么选这三个排序呢? 首先快排是必须掌握的 看看快排在最坏的情况下(O(n²)),且不使用辅助空间 ...

  2. 快速排序,冒泡排序时间复杂度推导

    快速排序,冒泡排序时间复杂度推导 快速排序时间复杂度分析: 数组长度为n 1,平均复杂度: t(n) = cn + 2t(n/2) = cn + 2(cn/2 + 2t(n/4)) = 2cn + 4 ...

  3. 快速排序与冒泡排序的效率对比

    快速排序与冒泡排序的效率对比 鄙人在这里谈一下自己对冒泡排序与快速排序的看法,在经过详细的浏览代码以及文章后,我们可以得出以下结论: 1 快速排序是冒泡排序的一种改进,跟冒泡排序有一定的区别. 2. ...

  4. c语言排序(快速排序,冒泡排序,选择排序,插入排序,桶排序)

    快速排序,冒泡排序,选择排序,插入排序,桶排序 文章目录 什么是排序 快速排序 实现流程 代码 改进版快速排序代码 注意点 冒泡排序 实现流程 实现代码 选择排序 实现代码 插入排序 实现代码 桶排序 ...

  5. C++十种排序方法(快速排序、冒泡排序等等)

    C++十种排序方法(快速排序.冒泡排序等等) 一.冒泡排序 1.概念及思路:冒泡排序顾名思义就是大的数沉下去,小的数浮上来,就跟气泡在水底浮上来一样:基本的思路很简单,就是相邻的两个数相比较,如果前面 ...

  6. 归并排序,快速排序,冒泡排序,选择排序,基数排序,桶排序,堆排序(c++实现)

    一.归并排序 #include<iostream> using namespace std; void Merge(int arr[],int low,int mid,int high); ...

  7. php递归实现冒泡排序,排序算法之PHP版快速排序、冒泡排序

    一.快速排序 1.简介 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见.事实上,快速排序 ...

  8. php实现快速排序和冒泡排序

    快速排序 实现思路:把第一个元素作为标记,依次判断后续的值,如果小于它则放在左边,如果大于它则放右边,同理把左右两部分看成一个整体一直递归,最后再数组拼接起来 它的最优时间复杂度为O(nlogn)[以 ...

  9. python 冒泡排序 交换次数_(Python)交换排序(气泡排序、快速排序),冒泡排序...

    交换排序 -- 冒泡排序 基本思想:从一端开始,逐个比较相邻的两个元素,发现倒序即交换.这里按从后往前(从下往上)逐个比较相邻元素. 数组冒泡排序过程 def bubbleSort(arr): n = ...

  10. 链表的快速排序及冒泡排序

    快速排序的思路 众所周知,快速排序的核心思想是:选定基准值并排好其位置, 根据基准值将序列分割两半,分别递归之. 单链表寻找基准点的方法:用两个指针i和j,这两个指针均往next方向移动,移动的过程中 ...

最新文章

  1. centos把mysql移到数据盘_Centos转移Mysql的数据位置
  2. Scanner读取一个int数组
  3. Java面试题之有没有有顺序的Map实现类,如果有,他们是怎么实现有序的?
  4. 路由算法及路由协议(详解)
  5. python中的字典和集合_Python 字典和集合
  6. null或空值的判断处理-java
  7. c语言char float混合类型运算,求int long char double float 在混合运算中的自动转换规则 win 32位系统。...
  8. 零基础学Python--------第3章 流程控制语句
  9. Springboot集成JavaMailSender发送邮件
  10. 多智能体通信:MAGNet用于深度多智能体强化学习的多智能体图网络
  11. salt returner mysql_saltstack (4) 用mysql存储 salt 返回值
  12. Linux系统启动过程及其修复过程简析(CentOS5、6)
  13. Androidg 改变CheckBox下的选中与未选中图片
  14. win10设置计算机关机时间,win10怎样固定时间关机_win10怎样设置电脑关机时间设置...
  15. 函数day_of_year 和month_day
  16. JavaScript---网络编程(8)-DHTML技术演示(1)
  17. Unity 编辑器扩展菜单
  18. 关于RECON-NG相关问题解决
  19. win10创意者更新是什么 Win10创意者更新升级方法
  20. matlab 工具箱 径向基,精确径向基(matlab工具箱)

热门文章

  1. [JUC-2]AbstractQueuedSynchronizer源码分析
  2. linux设备/驱动的注册
  3. 第二部分 python基础 day10\11\12 运算符与基本数据类型
  4. 双十一大战收官:荣耀反超苹果,以新思维新模式傲视群雄
  5. PHP之路——Xdebug扩展
  6. likely,unlikely宏与GCC内建函数__builtin_expect()
  7. Python 之操作so动态库
  8. Unity app调试
  9. Nginx源码阅读 --- http模块 --- TCP连接过程
  10. mvn install跳过测试