冒泡、选择、插入排序_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 冒泡、选择、插入排序

冒泡、选择、插入排序

 2014/6/27 21:32:41  xuweilovejava  程序员俱乐部  我要评论(0)
  • 摘要:冒泡排序在发现比它小的时候就交换,选择排序只有在确定了最小的数据之后,才会发生交换。插入排序速度比冒泡排序速度快一倍,比选择排序速度还快些。冒泡排序:第一种方式:int[]arr=newint[]{22,55,44,66,33,11,77,99,88,0};intcount=0;for(inti=0;i<arr.length;i++){for(intj=0;j<arr.length-i-1;j++){if(arr[j]>arr[j+1]){count++
  • 标签:
冒泡排序发现比它小的时候就交换,选择排序只有在确定了最小的数据之后,才会发生交换。
插入排序速度比冒泡排序速度快一倍,比选择排序速度还快些。
冒泡排序:
第一种方式:
int[] arr = new int[] { 22, 55, 44, 66, 33, 11, 77, 99, 88 ,0};
int count = 0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length - i -1; j++) {
if (arr[j] > arr[j + 1]) {
                                     count++;
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}

System.out.println("count:"+count);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}

第二种方式:
int[] arr = new int[] { 22, 55, 44, 66, 33, 11, 77, 99, 88 ,0};
int x,y;
int count = 0;
for (x = arr.length-1;x>0;x--) {
for (y=0;y<x;y++) {
if(arr[y]>arr[y+1]){
count++;
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}

}
}
System.out.println("count:"+count);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}

得到结果:
count:19
0
11
22
33
44
55
66
77
88
99



选择排序:
int[] arr = new int[] { 22, 55, 44, 66, 33, 11, 77, 99, 88 ,0};
int count = 0 ;
for (int i = 0; i < arr.length; i++) {
int min = i; /* 将当前下标定义为最小值下标 */
for (int j = i+1; j < arr.length; j++) {
if(arr[min]>arr[j]){ /* 如果有小于当前最小值的关键字 */
count++;
min = j; /* 将此关键字的下标赋值给min */ 
}
}
if(i!=min){/* 若min不等于i,说明找到最小值,交换 */ 
int tmp = arr[min]; 
             arr[min] = arr[i]; 
             arr[i] = tmp; 
}
}
System.out.println("count:"+count);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}

得到结果:
count:13
0
11
22
33
44
55
66
77
88
99

插入排序:
int[] arr = new int[] { 22, 55, 44, 66, 33, 11, 77, 99, 88 ,0};
int in,out;
for (out =1 ; out < arr.length; out++) {
int temp = arr[out];
in = out;
while (in>0 && arr[in-1]>temp) {
arr[in] = arr[in-1];
--in;
}
arr[in] = temp;
}
for (int k = 0; k < arr.length; k++) {
System.out.println(arr[k]);
}

  • 相关文章
发表评论
用户名: 匿名