Java基础-数组常见排序方式

                                    作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

  数据的排序一般都是生序排序,即元素从小到大排列。常见的有两种排序方式:选择排序和冒泡排序。选择排序的特点是每个元素都进行比较,二冒泡排序是数组中相邻元素进行比较。接下来我们一起来看看选择排序和冒泡排序的原理以及如何用Java代码去实现它们。

 

 

 

一.选择排序原理

   数组中的每个元素和其它元素进行比较换位置。比如现在有以下一个数字,需要对数组中的值进行排序,要求是从小到达进行排序。我们不妨看看选择排序是如何实现的。

1>.索引为0的开始进行比较,过程如下:(确定了最小值)

 

2>.索引为1的开始进行比较,过程如下:(确定了第二小的值)

 

3>.索引为2的开始进行比较,过程如下:(确定了第三小的值)

 

二.选择排序功能实现

 1>.选择排序功案例展示

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 package cn.org.yinzhengjie.Demo;
 8 
 9 public class ArraryMethodDemo {
10 
11     public static void main(String[] args) {
12         int[] year = {2,0,1,8};
13         System.out.print("排序之前:");
14         printArray(year);
15         selectSort(year);
16         System.out.print("排序之后:");
17         printArray(year);
18 
19     }
20     //定义遍历数组的方法
21     public static void printArray(int[] arr) {
22         for (int i = 0; i < arr.length; i++) {
23             System.out.print(arr[i]);
24         }
25         System.out.println();
26     }
27     /* 定义排序的方法
28      * 实现步骤:
29      *         1>.嵌套循环实现排序。
30      *             外循环,控制的是一共比较了多少次
31      *             内循环,控制的是每次比较了多少个元素
32      *         2>.判断元素的大小值
33      *             小值,存储到小的索引
34      */
35     public static void selectSort(int[] arr) {
36         for (int i = 0; i < arr.length; i++) {
37             //内循环每次都在减少,修改变量的定义即可
38             for(int j = i+1;j<arr.length;j++) {
39                 if(arr[i]>arr[j]) {
40                     int temp = arr[i];
41                     arr[i] = arr[j];
42                     arr[j] = temp;
43                 }
44             }
45         }
46     }
47 }
48 
49 
50 
51 
52 /*
53 以上代码执行结果如下:
54 排序之前:2018
55 排序之后:0128
56 */

2>.选择排序优化版本

  上面的脚本比较的数组较小,我们可以比较一个大一点的,比较1000个以上的数的排序,就有一种优化写法啦,案例如下:

  1 /*
  2 @author :yinzhengjie
  3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
  4 EMAIL:y1053419035@qq.com
  5 */
  6 
  7 package cn.org.yinzhengjie.Demo;
  8 
  9 public class ArrayMethodDemo2 {
 10 
 11     public static void main(String[] args) {
 12         int[] arr1 = getArray();
 13         System.out.println("排序前:");
 14         print(arr1);
 15         
 16         int[] arr2 = copy(arr1);
 17         System.out.println("排序前:");
 18         print(arr2);
 19         
 20         
 21         System.out.println("-----------");
 22         selectSort(arr1);
 23         System.out.println("排序后:");
 24         print(arr1);
 25         
 26         System.out.println("-----------");
 27         selectSort2(arr2);
 28         System.out.println("排序后:");
 29         print(arr2);
 30 
 31 
 32     }
 33     
 34     //产生一个1000个元素的数组
 35     public static int[] getArray(){
 36         int[] arr = new int[1000];
 37         for(int i = 0;i<arr.length;i++){
 38             arr[i] = (int)(Math.random()*1000);
 39         }
 40         return arr;
 41     }
 42     
 43     //数组拷贝
 44     public static int[] copy(int[] src){
 45         int[] dest = new int[src.length];
 46         //使用系统类的数组拷贝方法
 47         System.arraycopy(src, 0, dest, 0, src.length);
 48         return dest;
 49     }
 50     
 51     public static void print(int[] arr){
 52         for(int i = 0;i<arr.length;i++){
 53             if(i != 0 && i % 100 == 0){
 54                 System.out.println();
 55             }
 56             System.out.print(arr[i] +" ");
 57         }
 58         System.out.println();
 59     }
 60     
 61     //比较排序(选择排序)
 62     public static void selectSort(int[] arr){
 63         int count = 0;
 64         //外层循环控制的是比较的轮数:元素的个数-1
 65         for(int i = 0;i<arr.length - 1;i++){
 66             //内层控制的是两两比较的次数
 67             for(int j = i + 1;j<arr.length;j++){
 68                 if(arr[i] > arr[j]){
 69                     int tmp = arr[i];
 70                     arr[i] = arr[j];
 71                     arr[j] = tmp;
 72                     count++;
 73                 }
 74             }
 75         }
 76         System.out.println("普通的选择排序,交换的次数是: " + count);
 77     }
 78     
 79     
 80     //优化后的选择排序
 81     public static void selectSort2(int[] arr){
 82         int count = 0;
 83         
 84         for(int i = 0;i<arr.length - 1;i++){
 85             
 86             int index = i;
 87             int value = arr[i];
 88             
 89             for(int j = i + 1;j<arr.length;j++){
 90                 if(arr[j] < value){
 91                     index = j;
 92                     value = arr[j];
 93                 }
 94             }
 95             
 96             //判断,是否有必要交换两个元素
 97             if(index != i){
 98                 int tmp = arr[i];
 99                 arr[i] = arr[index];
100                 arr[index] = tmp;
101                 count++;
102             }
103         }
104         System.out.println("优化后的选择排序,交换的次数是: " + count);
105     }
106 }

 1 排序前:
 2 817 902 856 60 534 373 495 361 571 138 255 170 766 386 671 76 697 859 319 814 823 840 406 916 579 216 330 458 599 207 221 738 357 891 148 928 31 766 257 90 338 432 661 476 390 930 258 677 401 380 997 33 181 379 351 687 937 8 850 798 830 432 589 744 134 771 562 559 579 397 516 505 658 784 788 385 270 834 225 175 21 918 887 590 946 935 666 455 196 344 384 116 429 502 169 700 284 606 129 709 
 3 326 205 446 294 265 560 998 570 115 88 538 524 156 751 280 333 255 532 460 469 111 71 74 543 478 127 523 665 269 774 348 31 708 159 579 580 407 179 489 796 270 682 672 158 687 649 489 340 312 356 834 953 56 674 103 550 633 544 13 625 94 133 607 560 323 333 384 820 375 86 19 215 902 479 503 699 613 661 895 41 884 447 78 629 183 865 51 861 932 27 313 826 778 429 850 459 45 218 87 946 
 4 282 979 893 922 437 351 442 914 147 147 236 578 50 641 125 489 826 442 504 642 858 640 168 359 62 961 500 3 404 295 750 763 93 275 191 758 242 557 825 925 53 69 158 420 197 764 249 813 148 378 907 922 646 243 414 991 381 489 623 822 207 846 598 592 899 842 250 358 558 371 550 665 239 525 3 229 267 74 16 439 51 176 673 267 842 745 234 250 77 394 348 388 406 27 589 170 450 968 399 456 
 5 691 962 964 589 597 535 857 971 254 953 485 287 326 466 541 715 115 610 674 756 866 93 540 753 223 182 243 792 929 586 934 433 438 528 4 628 95 77 841 283 951 848 654 126 58 851 175 944 315 612 406 804 550 697 714 541 521 410 714 707 985 746 357 123 778 671 579 400 115 374 658 86 947 467 166 596 276 10 29 706 785 839 738 199 991 925 207 187 428 385 120 764 6 342 850 863 805 30 212 667 
 6 48 430 382 450 876 217 257 480 862 43 450 498 913 951 879 337 318 263 595 426 208 424 114 308 652 81 11 794 910 160 927 44 131 814 509 709 912 900 954 221 698 73 34 492 954 679 452 540 398 373 362 28 381 798 711 324 631 710 835 413 220 658 386 955 539 699 243 821 515 653 527 695 75 91 231 712 77 586 256 637 552 760 823 796 97 309 362 834 728 491 944 376 279 553 277 842 728 149 48 988 
 7 432 143 190 230 341 57 206 458 684 68 276 798 515 678 287 796 760 98 280 541 82 921 72 548 984 923 950 624 21 649 435 516 939 5 51 881 808 247 941 986 963 610 951 617 661 294 478 854 895 718 17 728 717 704 788 307 767 785 308 403 454 899 10 934 343 540 309 942 905 855 594 432 702 291 682 446 461 98 208 290 276 452 285 398 316 983 490 92 37 221 944 424 865 845 767 351 727 651 710 726 
 8 581 837 105 992 346 541 597 973 202 563 290 908 294 876 35 674 256 806 624 210 854 757 524 283 232 965 632 76 944 42 241 577 956 14 50 344 309 140 565 64 955 58 709 239 578 678 780 442 879 850 174 883 872 994 433 381 269 810 255 483 870 657 85 147 227 415 752 330 530 480 455 838 784 9 44 24 873 730 172 249 24 399 390 553 521 488 653 639 262 784 59 119 898 369 819 913 822 883 634 879 
 9 286 64 651 3 220 310 131 962 156 398 826 446 807 565 770 430 439 880 911 450 163 185 526 75 682 932 863 950 800 918 826 186 251 265 814 440 972 983 989 688 11 115 393 585 646 762 290 299 161 276 58 889 929 487 750 597 141 161 183 947 507 777 23 137 802 329 896 34 893 90 983 23 250 194 891 62 541 428 889 568 49 875 710 172 115 880 224 950 699 385 240 484 479 825 588 987 583 629 403 758 
10 198 894 245 456 787 900 274 17 600 2 197 571 481 851 138 364 710 53 887 532 788 135 191 545 594 129 914 285 314 173 903 7 927 269 345 887 756 764 262 476 823 144 517 118 282 483 403 334 234 232 418 242 592 83 336 297 476 313 24 55 848 356 794 178 663 366 207 615 889 153 413 748 123 213 60 299 411 534 742 967 77 467 778 90 42 243 821 103 150 648 434 218 482 965 316 507 498 517 278 577 
11 131 82 450 69 609 984 421 537 893 880 211 620 85 165 7 61 69 404 589 796 943 410 253 269 517 435 810 149 247 399 950 837 520 290 833 500 116 630 313 884 9 392 569 828 408 878 265 234 94 828 578 200 637 473 543 209 68 355 236 512 914 450 226 328 301 550 591 69 976 938 550 579 721 63 413 268 586 340 127 142 782 192 172 899 875 157 928 715 121 221 931 840 411 521 640 837 305 239 390 171 
12 排序前:
13 817 902 856 60 534 373 495 361 571 138 255 170 766 386 671 76 697 859 319 814 823 840 406 916 579 216 330 458 599 207 221 738 357 891 148 928 31 766 257 90 338 432 661 476 390 930 258 677 401 380 997 33 181 379 351 687 937 8 850 798 830 432 589 744 134 771 562 559 579 397 516 505 658 784 788 385 270 834 225 175 21 918 887 590 946 935 666 455 196 344 384 116 429 502 169 700 284 606 129 709 
14 326 205 446 294 265 560 998 570 115 88 538 524 156 751 280 333 255 532 460 469 111 71 74 543 478 127 523 665 269 774 348 31 708 159 579 580 407 179 489 796 270 682 672 158 687 649 489 340 312 356 834 953 56 674 103 550 633 544 13 625 94 133 607 560 323 333 384 820 375 86 19 215 902 479 503 699 613 661 895 41 884 447 78 629 183 865 51 861 932 27 313 826 778 429 850 459 45 218 87 946 
15 282 979 893 922 437 351 442 914 147 147 236 578 50 641 125 489 826 442 504 642 858 640 168 359 62 961 500 3 404 295 750 763 93 275 191 758 242 557 825 925 53 69 158 420 197 764 249 813 148 378 907 922 646 243 414 991 381 489 623 822 207 846 598 592 899 842 250 358 558 371 550 665 239 525 3 229 267 74 16 439 51 176 673 267 842 745 234 250 77 394 348 388 406 27 589 170 450 968 399 456 
16 691 962 964 589 597 535 857 971 254 953 485 287 326 466 541 715 115 610 674 756 866 93 540 753 223 182 243 792 929 586 934 433 438 528 4 628 95 77 841 283 951 848 654 126 58 851 175 944 315 612 406 804 550 697 714 541 521 410 714 707 985 746 357 123 778 671 579 400 115 374 658 86 947 467 166 596 276 10 29 706 785 839 738 199 991 925 207 187 428 385 120 764 6 342 850 863 805 30 212 667 
17 48 430 382 450 876 217 257 480 862 43 450 498 913 951 879 337 318 263 595 426 208 424 114 308 652 81 11 794 910 160 927 44 131 814 509 709 912 900 954 221 698 73 34 492 954 679 452 540 398 373 362 28 381 798 711 324 631 710 835 413 220 658 386 955 539 699 243 821 515 653 527 695 75 91 231 712 77 586 256 637 552 760 823 796 97 309 362 834 728 491 944 376 279 553 277 842 728 149 48 988 
18 432 143 190 230 341 57 206 458 684 68 276 798 515 678 287 796 760 98 280 541 82 921 72 548 984 923 950 624 21 649 435 516 939 5 51 881 808 247 941 986 963 610 951 617 661 294 478 854 895 718 17 728 717 704 788 307 767 785 308 403 454 899 10 934 343 540 309 942 905 855 594 432 702 291 682 446 461 98 208 290 276 452 285 398 316 983 490 92 37 221 944 424 865 845 767 351 727 651 710 726 
19 581 837 105 992 346 541 597 973 202 563 290 908 294 876 35 674 256 806 624 210 854 757 524 283 232 965 632 76 944 42 241 577 956 14 50 344 309 140 565 64 955 58 709 239 578 678 780 442 879 850 174 883 872 994 433 381 269 810 255 483 870 657 85 147 227 415 752 330 530 480 455 838 784 9 44 24 873 730 172 249 24 399 390 553 521 488 653 639 262 784 59 119 898 369 819 913 822 883 634 879 
20 286 64 651 3 220 310 131 962 156 398 826 446 807 565 770 430 439 880 911 450 163 185 526 75 682 932 863 950 800 918 826 186 251 265 814 440 972 983 989 688 11 115 393 585 646 762 290 299 161 276 58 889 929 487 750 597 141 161 183 947 507 777 23 137 802 329 896 34 893 90 983 23 250 194 891 62 541 428 889 568 49 875 710 172 115 880 224 950 699 385 240 484 479 825 588 987 583 629 403 758 
21 198 894 245 456 787 900 274 17 600 2 197 571 481 851 138 364 710 53 887 532 788 135 191 545 594 129 914 285 314 173 903 7 927 269 345 887 756 764 262 476 823 144 517 118 282 483 403 334 234 232 418 242 592 83 336 297 476 313 24 55 848 356 794 178 663 366 207 615 889 153 413 748 123 213 60 299 411 534 742 967 77 467 778 90 42 243 821 103 150 648 434 218 482 965 316 507 498 517 278 577 
22 131 82 450 69 609 984 421 537 893 880 211 620 85 165 7 61 69 404 589 796 943 410 253 269 517 435 810 149 247 399 950 837 520 290 833 500 116 630 313 884 9 392 569 828 408 878 265 234 94 828 578 200 637 473 543 209 68 355 236 512 914 450 226 328 301 550 591 69 976 938 550 579 721 63 413 268 586 340 127 142 782 192 172 899 875 157 928 715 121 221 931 840 411 521 640 837 305 239 390 171 
23 -----------
24 普通的选择排序,交换的次数是: 186376
25 排序后:
26 2 3 3 3 4 5 6 7 7 8 9 9 10 10 11 11 13 14 16 17 17 19 21 21 23 23 24 24 24 27 27 28 29 30 31 31 33 34 34 35 37 41 42 42 43 44 44 45 48 48 49 50 50 51 51 51 53 53 55 56 57 58 58 58 59 60 60 61 62 62 63 64 64 68 68 69 69 69 69 71 72 73 74 74 75 75 76 76 77 77 77 77 78 81 82 82 83 85 85 86 
27 86 87 88 90 90 90 91 92 93 93 94 94 95 97 98 98 103 103 105 111 114 115 115 115 115 115 116 116 118 119 120 121 123 123 125 126 127 127 129 129 131 131 131 133 134 135 137 138 138 140 141 142 143 144 147 147 147 148 148 149 149 150 153 156 156 157 158 158 159 160 161 161 163 165 166 168 169 170 170 171 172 172 172 173 174 175 175 176 178 179 181 182 183 183 185 186 187 190 191 191 
28 192 194 196 197 197 198 199 200 202 205 206 207 207 207 207 208 208 209 210 211 212 213 215 216 217 218 218 220 220 221 221 221 221 223 224 225 226 227 229 230 231 232 232 234 234 234 236 236 239 239 239 240 241 242 242 243 243 243 243 245 247 247 249 249 250 250 250 251 253 254 255 255 255 256 256 257 257 258 262 262 263 265 265 265 267 267 268 269 269 269 269 270 270 274 275 276 276 276 276 277 
29 278 279 280 280 282 282 283 283 284 285 285 286 287 287 290 290 290 290 291 294 294 294 295 297 299 299 301 305 307 308 308 309 309 309 310 312 313 313 313 314 315 316 316 318 319 323 324 326 326 328 329 330 330 333 333 334 336 337 338 340 340 341 342 343 344 344 345 346 348 348 351 351 351 355 356 356 357 357 358 359 361 362 362 364 366 369 371 373 373 374 375 376 378 379 380 381 381 381 382 384 
30 384 385 385 385 386 386 388 390 390 390 392 393 394 397 398 398 398 399 399 399 400 401 403 403 403 404 404 406 406 406 407 408 410 410 411 411 413 413 413 414 415 418 420 421 424 424 426 428 428 429 429 430 430 432 432 432 432 433 433 434 435 435 437 438 439 439 440 442 442 442 446 446 446 447 450 450 450 450 450 450 452 452 454 455 455 456 456 458 458 459 460 461 466 467 467 469 473 476 476 476 
31 478 478 479 479 480 480 481 482 483 483 484 485 487 488 489 489 489 489 490 491 492 495 498 498 500 500 502 503 504 505 507 507 509 512 515 515 516 516 517 517 517 520 521 521 521 523 524 524 525 526 527 528 530 532 532 534 534 535 537 538 539 540 540 540 541 541 541 541 541 543 543 544 545 548 550 550 550 550 550 552 553 553 557 558 559 560 560 562 563 565 565 568 569 570 571 571 577 577 578 578 
32 578 579 579 579 579 579 580 581 583 585 586 586 586 588 589 589 589 589 590 591 592 592 594 594 595 596 597 597 597 598 599 600 606 607 609 610 610 612 613 615 617 620 623 624 624 625 628 629 629 630 631 632 633 634 637 637 639 640 640 641 642 646 646 648 649 649 651 651 652 653 653 654 657 658 658 658 661 661 661 663 665 665 666 667 671 671 672 673 674 674 674 677 678 678 679 682 682 682 684 687 
33 687 688 691 695 697 697 698 699 699 699 700 702 704 706 707 708 709 709 709 710 710 710 710 711 712 714 714 715 715 717 718 721 726 727 728 728 728 730 738 738 742 744 745 746 748 750 750 751 752 753 756 756 757 758 758 760 760 762 763 764 764 764 766 766 767 767 770 771 774 777 778 778 778 780 782 784 784 784 785 785 787 788 788 788 792 794 794 796 796 796 796 798 798 798 800 802 804 805 806 807 
34 808 810 810 813 814 814 814 817 819 820 821 821 822 822 823 823 823 825 825 826 826 826 826 828 828 830 833 834 834 834 835 837 837 837 838 839 840 840 841 842 842 842 845 846 848 848 850 850 850 850 851 851 854 854 855 856 857 858 859 861 862 863 863 865 865 866 870 872 873 875 875 876 876 878 879 879 879 880 880 880 881 883 883 884 884 887 887 887 889 889 889 891 891 893 893 893 894 895 895 896 
35 898 899 899 899 900 900 902 902 903 905 907 908 910 911 912 913 913 914 914 914 916 918 918 921 922 922 923 925 925 927 927 928 928 929 929 930 931 932 932 934 934 935 937 938 939 941 942 943 944 944 944 944 946 946 947 947 950 950 950 950 951 951 951 953 953 954 954 955 955 956 961 962 962 963 964 965 965 967 968 971 972 973 976 979 983 983 983 984 984 985 986 987 988 989 991 991 992 994 997 998 
36 -----------
37 优化后的选择排序,交换的次数是: 993
38 排序后:
39 2 3 3 3 4 5 6 7 7 8 9 9 10 10 11 11 13 14 16 17 17 19 21 21 23 23 24 24 24 27 27 28 29 30 31 31 33 34 34 35 37 41 42 42 43 44 44 45 48 48 49 50 50 51 51 51 53 53 55 56 57 58 58 58 59 60 60 61 62 62 63 64 64 68 68 69 69 69 69 71 72 73 74 74 75 75 76 76 77 77 77 77 78 81 82 82 83 85 85 86 
40 86 87 88 90 90 90 91 92 93 93 94 94 95 97 98 98 103 103 105 111 114 115 115 115 115 115 116 116 118 119 120 121 123 123 125 126 127 127 129 129 131 131 131 133 134 135 137 138 138 140 141 142 143 144 147 147 147 148 148 149 149 150 153 156 156 157 158 158 159 160 161 161 163 165 166 168 169 170 170 171 172 172 172 173 174 175 175 176 178 179 181 182 183 183 185 186 187 190 191 191 
41 192 194 196 197 197 198 199 200 202 205 206 207 207 207 207 208 208 209 210 211 212 213 215 216 217 218 218 220 220 221 221 221 221 223 224 225 226 227 229 230 231 232 232 234 234 234 236 236 239 239 239 240 241 242 242 243 243 243 243 245 247 247 249 249 250 250 250 251 253 254 255 255 255 256 256 257 257 258 262 262 263 265 265 265 267 267 268 269 269 269 269 270 270 274 275 276 276 276 276 277 
42 278 279 280 280 282 282 283 283 284 285 285 286 287 287 290 290 290 290 291 294 294 294 295 297 299 299 301 305 307 308 308 309 309 309 310 312 313 313 313 314 315 316 316 318 319 323 324 326 326 328 329 330 330 333 333 334 336 337 338 340 340 341 342 343 344 344 345 346 348 348 351 351 351 355 356 356 357 357 358 359 361 362 362 364 366 369 371 373 373 374 375 376 378 379 380 381 381 381 382 384 
43 384 385 385 385 386 386 388 390 390 390 392 393 394 397 398 398 398 399 399 399 400 401 403 403 403 404 404 406 406 406 407 408 410 410 411 411 413 413 413 414 415 418 420 421 424 424 426 428 428 429 429 430 430 432 432 432 432 433 433 434 435 435 437 438 439 439 440 442 442 442 446 446 446 447 450 450 450 450 450 450 452 452 454 455 455 456 456 458 458 459 460 461 466 467 467 469 473 476 476 476 
44 478 478 479 479 480 480 481 482 483 483 484 485 487 488 489 489 489 489 490 491 492 495 498 498 500 500 502 503 504 505 507 507 509 512 515 515 516 516 517 517 517 520 521 521 521 523 524 524 525 526 527 528 530 532 532 534 534 535 537 538 539 540 540 540 541 541 541 541 541 543 543 544 545 548 550 550 550 550 550 552 553 553 557 558 559 560 560 562 563 565 565 568 569 570 571 571 577 577 578 578 
45 578 579 579 579 579 579 580 581 583 585 586 586 586 588 589 589 589 589 590 591 592 592 594 594 595 596 597 597 597 598 599 600 606 607 609 610 610 612 613 615 617 620 623 624 624 625 628 629 629 630 631 632 633 634 637 637 639 640 640 641 642 646 646 648 649 649 651 651 652 653 653 654 657 658 658 658 661 661 661 663 665 665 666 667 671 671 672 673 674 674 674 677 678 678 679 682 682 682 684 687 
46 687 688 691 695 697 697 698 699 699 699 700 702 704 706 707 708 709 709 709 710 710 710 710 711 712 714 714 715 715 717 718 721 726 727 728 728 728 730 738 738 742 744 745 746 748 750 750 751 752 753 756 756 757 758 758 760 760 762 763 764 764 764 766 766 767 767 770 771 774 777 778 778 778 780 782 784 784 784 785 785 787 788 788 788 792 794 794 796 796 796 796 798 798 798 800 802 804 805 806 807 
47 808 810 810 813 814 814 814 817 819 820 821 821 822 822 823 823 823 825 825 826 826 826 826 828 828 830 833 834 834 834 835 837 837 837 838 839 840 840 841 842 842 842 845 846 848 848 850 850 850 850 851 851 854 854 855 856 857 858 859 861 862 863 863 865 865 866 870 872 873 875 875 876 876 878 879 879 879 880 880 880 881 883 883 884 884 887 887 887 889 889 889 891 891 893 893 893 894 895 895 896 
48 898 899 899 899 900 900 902 902 903 905 907 908 910 911 912 913 913 914 914 914 916 918 918 921 922 922 923 925 925 927 927 928 928 929 929 930 931 932 932 934 934 935 937 938 939 941 942 943 944 944 944 944 946 946 947 947 950 950 950 950 951 951 951 953 953 954 954 955 955 956 961 962 962 963 964 965 965 967 968 971 972 973 976 979 983 983 983 984 984 985 986 987 988 989 991 991 992 994 997 998

以上代码输出结果猛戳这里!!!

 

三.冒泡排序原理

1>.数组相邻元素比较,过程如下:(确定了最大值,放在最后面)

 

2>.数组相邻元素继续比较(最后一个元素不用比较),过程如下:(确定了第二大值)

 

3>.数组相邻元素继续比较(最后两个元素不用比较),过程如下:(确定了第三大值)

 

 

 四.冒泡排序功能实现

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 package cn.org.yinzhengjie.Demo;
 8 
 9 public class ArraryMethodDemo {
10 
11     public static void main(String[] args) {
12         int[] year = {2,0,1,8};
13         System.out.print("排序之前:");
14         printArray(year);
15         selectSort(year);
16         System.out.print("排序之后:");
17         printArray(year);
18 
19     }
20     //定义遍历数组的方法
21     public static void printArray(int[] arr) {
22         for (int i = 0; i < arr.length; i++) {
23             System.out.print(arr[i]);
24         }
25         System.out.println();
26     }
27     //定义方法,实现冒泡排序
28     public static void selectSort(int[] arr) {
29         for (int i = 0; i < arr.length - 1; i++) {
30             //每次内循环的比较,从0索引开始,每次都在递减。注意内循环的次数应该是(arr.length - 1 - i)。
31             for(int j = 0;j<arr.length - 1 - i;j++) {
32                 //比较的索引是j和j+1
33                 if(arr[j]>arr[j+1]) {
34                     int temp = arr[j];
35                     arr[j] = arr[j+1];
36                     arr[j+1] = temp;
37                 }
38             }
39         }
40     }
41 }
42 
43 
44 
45 
46 /*
47 以上代码执行结果如下:
48 排序之前:2018
49 排序之后:0128
50 */

 

版权声明:本文为yinzhengjie原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/yinzhengjie/p/8877352.html