冒泡排序和选择排序都是通过双重for循环来实现。两者不同关键在于交换的依据不同。
冒泡排序的思想是大数下沉,小数上浮,通过比较相邻元素大小(即:if (arr[j] > arr[j+1])判断条件)来实现,即
void maoPao(int arr[],int len){ //定义int类型数组arr、数组长度len
int temp; //临时变量
// 双重循环
for (int i = 0; i < len; i++) {
for (int j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j+1]){ //比较相邻元素大小(交换依据)
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
选择排序的思想史拿一个元素跟每个尚未排序的元素相比较(即: if (arr[i] > arr[j])为判断条件),从而实现排序。即:
void selectSort(int arr[],int len){
int temp;
//写双重循环
for (int i = 0; i < 10; i++) {
for (int j = i+1; j < len; j++) {
if (arr[i] > arr[j]){ //交换的依据
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
} |