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