----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
排序
假设{a1,a2,a3,a4,a5}为随机的五个数.
* 选择排序:用a1与a2比较,若a1大于a2,换位
* 用a1与a3比较,若a1大于a3,换位
* 用a1与a4比较,若a1大于a4,换位
* 用a1与a5比较,若a1大于a5,换位
* 用a2与a3比较,若a2大于a3,换位
* 用a2与a4比较,若a2大于a4,换位
* 用a2与a5比较,若a2大于a5,换位
* 用a3与a4比较,若a3大于a4,换位
* 用a3与a5比较,若a3大于a5,换位
* 用a4与a5比较,若a4大于a5,换位
public void swap(int x[],int a ,int b){
x[a] = x[a] ^ x[b];
x[b] = x[a] ^ x[b];
x[a] = x[a] ^ x[b];
}
public void SelectSort(int[] arr){
for (int x = 0; x < arr.length-1; x++) {
for (int y = x+1; y < arr.length; y++) {
if(arr[x] > arr[y]){
swap(arr,x,y);
}
}
}
}
* 冒泡排序:用a1与a2比较,若a1大于a2,换位
* 用a2与a3比较,若a2大于a3,换位
* 用a3与a4比较,若a3大于a4,换位
* 用a4与a5比较,若a4大于a5,换位(此时a5为最大值)
* 用a1与a2比较,若a1大于a2,换位
* 用a2与a3比较,若a2大于a3,换位
* 用a3与a4比较,若a3大于a4,换位(此时a4为剩下元素中最大值)
* 用a1与a2比较,若a1大于a2,换位
* 用a2与a3比较,若a2大于a3,换位(此时a3为剩下元素中最大值)
* 用a1与a2比较,若a1大于a2,换位(此时a2为剩下元素中最大值)
public void swap(int x[],int a ,int b){
x[a] = x[a] ^ x[b];
x[b] = x[a] ^ x[b];
x[a] = x[a] ^ x[b];
}
public void bubbleSort(int[] arr){
for (int x = 0; x < arr.length-1; x++) {
for (int y = 0; y < arr.length-1-x; y++) {
if(arr[y] > arr[y+1]){
swap(arr,y,y+1);
}
}
}
}
定义一个变量,让数组中的没一个元素和这个变量进行比较,如果大于变量的之就让变量记录较大值.(反之,同理)
public int getMax(int arr[]){
int max = 0;
for (int x = 0; x < arr.length; x++) {
if(arr[x] > arr[max])
max = x;
}
return arr[max];
}
public int getMin(int arr[]){
int min = 0;
for (int x = 0; x < arr.length; x++) {
if(arr[x] < arr[min])
min = x;
}
return arr[min];
}