选择排序算法思想:
第一次:选第2个数和第一个比较并把小的放左边,继续比较第3个和第一个,这样一圈下来最小的到第一位;
第二次:选第3个数和第二个数比较
如此直到最后一个数。
C语言版
#include <stdio.h>;
void Selectsort(int A[],int n)
{
int i,j,temp;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++) /* 从j往前的数据都是排好的,所以从j开始往下找剩下的元素中最小的 */
{
if(A[i]>A[j]) /* 把剩下元素中最小的那个放到A[i]中 */
{
temp=A[i];
A[i]=A[j];
A[j]=temp;
}
}
}
}
int main(void)
{
int arr[]={1,5,2,4,3,8,6,7,9};
int count=sizeof(arr)/sizeof(int);
Selectsort(arr,count);
int k;
for(k=0;k<count;k++)
{
printf("%d",arr[k]);
}
return 0;
}
PHP代码
<?php
$arr=array(1,5,2,4,3,8,6,7,9);
print "排序前 ";
print_r($arr);
echo "<br>";
$arr=select_sort($arr);
//$arr=bubble_sort($arr);
print "排序后 ";
print_r($arr);
//选择排序
function select_sort($array)
{
$count=count($array);
$k=0;
for($i=0;$i<$count;$i++)
{
for($j=$i+1;$j<$count;$j++)
{
if($array[$i]>$array[$j])
{
$temp=$array[$i];
$array[$i]=$array[$j];
$array[$j]=$temp;
$k++;
}
}
}
echo "一共用了".$k."次<br>";
return $array;
}
//冒泡排序
function bubble_sort($array)
{
$count = count($array);
$bool=true;$k=0;
for($i=0;$i<$count;$i++)
{
for($j=$count-1;$j>$i;$j--)
{
if($array[$j]<$array[$j-1])
{
$temp=$array[$j];
$array[$j]=$array[$j-1];
$array[$j-1]=$temp;
$bool=false;
$k++;
}
}
if($bool==true)
{
break;
}
}
echo "一共用了".$k."次<br>";
return $array;
}
?>