演算法排序之選擇排序

2021-10-02 14:15:28 字數 892 閱讀 2096

演算法思想

列如初始陣列:a=[10,4,1,3,2,0,5]; 如果要求公升序怎麼辦?

第一步:找到最小數0,然後把0放在首位,等於把10和0位置互換得到新的陣列a=[0,4,1,3,2,10,5]

第二步:在4、1、3、2、10、5找到最小的數1,將14的位置互換,得到新的陣列a=[0,1,4,3,2,10,5];

第三步:以此類推…最終得到有序陣列a=[0,1,2,3,4,5,10];

/**

* 選擇排序

* @author qiu

*無論如何時間複雜度t=o(n^2)

*/public

class

selectsort

;selectsort

(arr,arr.length)

; system.out.

println

(arrays.

tostring

(arr));

}public

static

void

selectsort

(double

arr,

int n)

}double tmp = arr[index]

; arr[index]

= arr[i]

; arr[i]

= tmp;}}

}

排序演算法 排序演算法之選擇排序

最近在學習排序演算法,就排序演算法中的四大經典排序 氣泡排序 快速排序 選擇排序 插入排序。會出一系列的講解排序演算法的部落格。今天繼快速排序之後整理一下選擇排序。選擇排序,就是從一列未排序的陣列中先選出最小 最大 的數,放在陣列的第一位,第一位原來的數字放在最小的原來的位置,再選出第二小的數,放在...

排序演算法之選擇排序 選擇排序 堆排序

直接選擇排序 如下 下面 是一次迴圈同時挑選出最大和最小數,並將其與左右交換 選擇排序 void selectionsort int a,int len swap a min a left 如果最大數的下標在為left,證明要交換的最大數已經被 換到min小標所表示的位置,只需要將right和min...

排序演算法之選擇排序

選擇排序 在乙個長度為n的無序陣列中,在第一趟遍歷n個資料,找出其中最小的數值與第乙個元素交換,第二趟遍歷剩下的n 1個資料,找出其中最小的數值與第二個元素交換.第n 1趟遍歷剩下的2個資料,找出其中最小的數值與第n 1個元素交換,至此選擇排序完成。平均時間複雜度 o n2 空間複雜度 o 1 用於...