http://blog.csdn.net/y550918116j/article/details/48719281
冒泡排序雾家、插入排序。在開發(fā)中最常用的就是冒泡排序和插入排序了霜医,不用說那么多高深算法事镣,在平常的工作中,若非BAT古劲,也沒有這么嚴(yán)格要求什么多高的效率斥赋。能掌握這兩種最常用的就基本可以了,搞App開發(fā)产艾,若非大數(shù)據(jù)疤剑,并沒有什么太高的要求。
冒泡排序:雙重循環(huán)就可以實現(xiàn)闷堡,在工作中常應(yīng)用于模型排序隘膘。
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循環(huán)來查找和移動位置棘幸,不好看明白。
voidinsertSort(int*a,intn)
{
inti,j,key;
// 控制需要插入的元素
for(i=1;i
{
// key為要插入的元素
key=a[i];
// 查找要插入的位置,循環(huán)結(jié)束,則找到插入位置
for(j=i;j>0&&a[j-1]>key;j--)
{
// 移動元素的位置,供要插入元素使用
a[j]=a[j-1];
}
// 插入需要插入的元素
a[j]=key;
}
}
這里還有咱群里的一位小伙伴寫的Swift版的快速排序算法倦零,可以看看:快速排序