选择排序在排序数组中选择一个最大或者最小的元素放到首位,然后在对除去首位的元素进行选择排序、
冒泡排序的工作原理是比较相邻的两个元素,然后把最小或者最大的元素依次交换位置(交换的次数多),而选择排序的工作原理是把找出最小或者最大元素的索引,然后只交换首元素和该索引的值即可。
选择排序
void XuanzeSort(int *arr[], int length)
{
int k = 0;
for(int i = 0; i < length ; i++)
{
k = i;
for(int j = i + 1; j < length; j++)
{
if(arr[k] > arr[j])
k = j;
}
if( k != i)
{
temp = arr[k];
arr[k] = arr[i];
arr[i] = temp;
}
}
}
冒泡排序
void MaopaoSort(int *arr[], int length)
{
for(int i =0 ; i < length -1; i++)
{
for(int j = length - 2 ; j >= i; j--)
{
if(arr[j] < arr[j+1] )
{
temp = arr[j];
arr[j] = arr[j-1];
arr[j-1] = arr[j];
}
}
}
}
冒泡排序的前i个元素已经是排好序了,所以内层循环 j>=i, 外层循环表示的是已经排好序的个数