快速排序(排序算法)

http://blog.csdn.net/y550918116j/article/details/48719281


冒泡排序、插入排序。在开发中最常用的就是冒泡排序和插入排序了,不用说那么多高深算法,在平常的工作中,若非BAT,也没有这么严格要求什么多高的效率。能掌握这两种最常用的就基本可以了,搞App开发,若非大数据,并没有什么太高的要求。

冒泡排序:双重循环就可以实现,在工作中常应用于模型排序。

voidbubbleSort(int[]unsorted)

{

for(inti=0;i

{

for(intj=i;j

{

if(unsorted[i]>unsorted[j]){

inttemp=unsorted[i];

unsorted[i]=unsorted[j];

unsorted[j]=temp;

}

}

}

}

插入排序:

voidinsertionSort(int[]unsorted)

{

for(inti=1;i

{

if(unsorted[i-1]>unsorted[i])

{

inttemp=unsorted[i];

intj=i;

while(j>0&&unsorted[j-1]>temp)

{

unsorted[j]=unsorted[j-1];

j--;

}

unsorted[j]=temp;

}

}

}

下面也是插入排序算法,这种写法可能会更好看一些。上面用while循环来查找和移动位置,不好看明白。

voidinsertSort(int*a,intn)

{

inti,j,key;

// 控制需要插入的元素

for(i=1;i

{

// key为要插入的元素

key=a[i];

// 查找要插入的位置,循环结束,则找到插入位置

for(j=i;j>0&&a[j-1]>key;j--)

{

// 移动元素的位置,供要插入元素使用

a[j]=a[j-1];

}

// 插入需要插入的元素

a[j]=key;

}

}

这里还有咱群里的一位小伙伴写的Swift版的快速排序算法,可以看看:快速排序

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 10,608评论 0 52
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 9,109评论 0 15
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序好...
    依依玖玥阅读 5,039评论 0 2
  • 总结一下常见的排序算法。 排序分内排序和外排序。内排序:指在排序期间数据对象全部存放在内存的排序。外排序:指在排序...
    jiangliang阅读 5,265评论 0 1
  • 在人生的道路上,面对选择是时常发生的事情。有选择就有舍弃,熊掌与鱼翅不可兼得,总得放弃一样,什么都想得到,三心二意...
    爱你下辈子阅读 4,913评论 0 0

友情链接更多精彩内容