文章目录
1. 冒泡排序与选择排序的区别
参考博客
以从小到大排序为例:
- 冒泡排序通过比较两两相邻值的大小,将最大一直往右侧推,来达到将最大值或最小值放到正确位置的目的
参考博客
//冒泡排序两两比较的元素是没有被排序过的元素--->
public void bubbleSort(int[] array){
for(int i=0;i<array.length-1;i++){//控制比较轮次,一共 n-1 趟
for(int j=0;j<array.length-1-i;j++){//控制两个挨着的元素进行比较
if(array[j] > array[j+1]){
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
}
- 选择排序通过用一个变量smallerIndex暂存最小值的下标,然后将a[smallerIndex] 挨个与其他每个未确定位置的值比较,每比较一次都更新改smallerIndex为最小值的下标,比较完一轮后,再更换a[i]与a[smallerIndex]的数据
参考博客
void selectionsort(int n, keytype S[])
{
index i, j, smallerIndex;
for (i = 1; i <= n - 1; i++) {
smallerIndex = i;
for (j = i + 1; j <= n; j++)
if (S[j] < S[smallerIndex])
smallest = j;
exchange S[i] and S[smallerIndex];
}
}