数组之常用排序算法,冒泡排序,直接选择排序

mac2024-10-17  45

冒泡排序

for(inti=0;i<arr.length-1;i++){ for(intj=0;j<arr.length-1-i;j++){ if (arr[j] > arr[j + 1]) { int temp = arr[j] ; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } }

直接选择排序

for(int i = 0; i < arr.1ength - 1; 1++){ for(int j = i;j < arr.1ength;j++){ if(arr[i] > arr[j]){ int temp = arr[i] ; arr[i] = arr[j] ; arr [j] = temp;| } } }

这种写法可以优化一下,交换的次数少

for(int i = 0; i < arr.length - 1; i++){ int t = i;//默认i处是最小的 for(int j = i;j < arr .length;j++){ //一旦在后发现存在比其小的元素,就记录那个元素的下角标 if(arr[t] > arr[j] ){ t =j; } } if(t != i){ int temp = arr[t]; arr[t]=arr[1]; arr[ i] = temp; } }
最新回复(0)