排序算法
-
排序算法比较基础,但是设计到很多计算机科学的想法,如下: 1、比较和非比较的策略 2、迭代和递归的实现 3、分而治之思想 4、最佳、最差、平均情况时间复杂度分析 5、随机算法
一、冒泡排序
冒泡排序的原理:
1、如果元素大小关系不正确,交换这两个数(在本例中为a> b),
2、比较一对相邻元素(a,b),
3、重复步骤1和2,直到我们到达数组的末尾(最后一对是第(N-2)和(N-1)项,因为我们的数组从零开始)
4、到目前为止,最大的元素将在最后的位置。 然后我们将N减少1,并重复步骤1,直到N = 1。
代码演示:
public static void main(String [] args){
int arr [] = {2,44,66,32,1,54,3,7,75,3};
for (int i = 0; i <arr.length-1 ; i++) {
for (int j = 0; j <arr.length-1-i ; j++) {
if (arr[j] > arr[j+1]){
int a = arr[j];
arr[j] = arr[j+1];
arr[j+1] = a;
}
}
}
for (int i = 0; i <arr.length ; i++) {
System.out.print("\t" + arr[i]);
}
}
2、选择排序
选择排序原理
1、在自己定义的数组中那第一个数和后面的数来比较
2、如果有比他小的,那小的再和其他的比较
3、确定最小的排在第一位
4、确定的不在比较,剩下的在比较出最小的依次排序
代码演示:
public static void main(String[] args) {
int [] arr = {56,34,66,6,8,2,9,1,57};
for (int i = 0; i <arr.length ; i++) {
for (int j = 0; j <arr.length-1 ; j++) {
if (arr[i] < arr[j]){
int a = arr[i];
arr[i] = arr[j];
arr[j] = a;
}
}
}
for (int i = 0; i <arr.length ; i++) {
System.out.print("\t" + arr[i]);
}
}