冒泡排序:
int[] list = {5,7,3,9,2,6,1,4,0,8}; for (int j = list.length - 1; j > 0; j--) { //从大到小取出数组中所有数。 for (int i = 0; i < j; i++) { //依次正序取出它之前的数。 if (list[i] > list[i + 1]) { //如果这个数比它后面的那个数大呢, int temp = list[i]; //就把它俩交换过来。 list[i] = list[i+1]; //如此一来呀, list[i+1] = temp; //数组里最后一个数就是最大的啦。 } } //然后按照第三行的内容遍历整个数组, } //就排好序了。 for(int i: list) { System.out.println(i); }
附图一张:
每次最大的数都会跑到最后面去,如果把判断语句改成小于的话就是最小的跑到最前面来,所以叫冒泡排序。
选择排序:
int[] list = {5,7,3,9,2,6,1,4,0,8}; for (int i = 0; i < list.length - 1; i++) { //取出数组中的一个数。 for (int j = i + 1; j < list.length; j++) { //然后依次取出它之后的所有数。 if (list[j] < list[i]) { //如果后面的数小于它呢, int temp = list[j]; //就交换它们的位置。 list[j] = list[i]; //如此这般, list[i] = temp; //最后头一位的就是最小的了。 } } //继续取出后面的来比较, } //就全排好了。 for(int i: list) { System.out.println(i); }
附图一张:
每次最小的数都会跑到最前面去,不过我也不知道为什么叫选择排序……