算法:选择排序
- 从当前未排序的整数中找到一个最小的整数,将它放在已排序的整数列表的最后。
- 要点:选择排序选最小的,往左边选。
- 冒泡排序与选择排序
(选择排序选最小的放在左边,比冒泡排序快,冒泡排序里交换很多次)
c++代码:
#include <iostream>
using namespace std;
void SelectSort(int *a, const int n);
int main(){
int x[]={1,3,5,7,9,0,2,4,6,8};
SelectSort(x,10);
for(int k=0;k<10;k++)
cout<<x[k]<<endl;
return 0;
}
void SelectSort(int *list,const int n){
for(int i=0;i<n-1;i++){
int min=i;
for(int j=i+1;j<n;j++){
if(list[j]<list[min])
min=j;
}
swap(list[i],list[min]);
}
}
与冒泡排序都是低级排序效率低
java代码:
package Sort;
public class Xuanze {
public static void main(String[] args) {
int[] arr= {49,54,11,12,842,3,45};
//选择排序
for(int i=0;i<arr.length-1;i++) {
for(int j=i+1;j<arr.length;j++) {
if(arr[i]>arr[j]) {
arr[i]^=arr[j];
arr[j]^=arr[i];
arr[i]^=arr[j];
}
}
}
//遍历
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
}
}