冒泡排序:
从左边开始把相邻的两个数两个两个进行比较,当一个元素大于右侧与它相邻的元素时,交换它们之间位置;反之,它们之间的位置不发生变化。冒泡排序是一种稳定的排序算法。
代码演示
int i , j , temp; //定义 外层循环变量 i 内层循环变量 j 临时变量 temp
for(i = 0; i < len - 1; i++){ //外层 控制 元素 比较多少趟
for( j = 0 ; j < len - i - 1 ; j++ ){ //内层 控制 元素 一趟比较的次数
if(arr[j] > arr[j+1]){ // 从小到大排序
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
选择排序
选择排序,找最大或者最小的元素 往前放,分成 已排序和待排序序列
注:选择排序不稳定,平均次数n(n-1)/2,
代码演示
void selectSort(int arr[] , int len){
int i , j , temp , min;
for(i=0; i<len ; i++){
min = i; // min标记未排序第一个元素的位置
for(j = i+1; j < len ; j++){ //找比min位置还小的元素