基本原理:
1:给定的一组记录,经过第一轮比较后得到最小的记录,然后将该记录与第一个记录位置进行交换
2:接着对不包含的第一个记录的以外的其他记录进行第二轮比较,得到最小记录并于第二个记录进行位置交换;
3: 重复1,2 步
案例 :{38,55,69,14,25,19,45}
第一趟排序后:14 [55,69,38,25,19,45]
第二趟排序后:14 19 [69,38,25,55,45]
第三趟排序后:14 19 25[38,69,55,45]
第四趟排序后:14 19 25 38[69,55,45]
第五趟排序后:14 19 25 38 45[55,69]
第六趟排序后:14 19 25 38 45 55 [69]
最后排序
结果:14 19 25 38 45 55 69
core代码
.java
sort (int [] a){
int i,j;
int temp=0;
int flag=0;//
for(int i=0;i<n;i++){//从零开始扫描
temp=a[i];//放入temp
flag=i;//标志
for(int j=i+1;j<n;j++){
if(a[j]<temp){//后续的元素中存在当前元素小的则将a[j]给temp
temp=a[j];
flag=j;
}
}
if(flag!=i){ //交换位置
a[flag]=a[i];
a[i]=temp;
}
}
}
快速排序的性能 最好时间复杂度为:O(NlogN),最差复杂度为O(n^2)。为不稳定排序,当N较大时,选择该排序方法较好。