美文网首页
快速排序(排序算法)

快速排序(排序算法)

作者: toplee | 来源:发表于2015-11-24 20:36 被阅读149次

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版的快速排序算法,可以看看:快速排序

相关文章

网友评论

      本文标题:快速排序(排序算法)

      本文链接:https://www.haomeiwen.com/subject/vrirhttx.html