假如从小到大排 int arr[]={6,5,5,3,9,1,2};
①冒泡:
数组第一个arr[0]和后面的每一个进行比较,谁小谁放arr[0]位置。
数组第二个arr[1]和后面的每一个进行比较,谁小谁放arr[1]位置。
……
int temp;
int arr[]={6,5,5,3,9,1,2};
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]>=arr[j]){
//换位
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
②选择:
每次都默认第一个数是最小的数,记下坐标和值,和后面的数进行比较,遇到更小的,这个坐标和值就替换成新的,一轮下来,找到最小的值,放在第一位,以此类推……
int arr[]={6,5,5,3,9,1,2};
for(int i=0;i<arr.length;i++){
int key=i;
int value=arr[i];
for(int j=i+1;j<arr.length;j++){
if(arr[j]<=value){
key=j;
value=arr[j];
}
}
//换位
if(key!=i){
arr[key]=arr[i];
arr[i]=value;
}
}
纯属自己理解,不对请指出。