标签:
#include <stdio.h> void maoPao(int arr[],int len){ int temp; //双重循环 for(int i=0;i<len-1;i++){ //因为i的值每变化一次,跑了一趟,按照冒泡的思想 //有一个数已经下沉了 //没有必要和已经有序的数据进行比较了 //j<len-1-i;所以 j<len-1也可以,但是多跑会 for (int j=0; j<len-1-i; j++) { if (arr[j]>arr[j+1]) { //交换 a[j] 和 a[j+1]的值 // 加减法 异或 temp temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } } int main(int argc, const char * argv[]) { int a[10]={1,200,23,45,12,34,19,4,388,63}; //a[0] 1 //&a[0] 地址 //排序前 for (int i=0; i<10; i++) { printf("%d\t",a[i]); } printf("\n"); //进行排序 maoPao(a, 10); //把数已经排玩序了 //遍历数组 for (int i=0; i<10; i++) { printf("%d\t",a[i]); } return 0; }
【掌握】选择排序代码实现
#include <stdio.h> /** * 选择排序 */ void selectSort(int arr[],int len){ //写双重循环 // int temp; for (int i=0; i<len-1; i++) { for (int j=i+1; j<len; j++) { //交换的依据 // if(arr[i]>arr[j]){ //让arr[i] 和 arr[j] 进行交换 temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } } int main(int argc, const char * argv[]) { //定义一个数组 int a[10]={23,12,4,67,20,100,21,45,3,28}; //目的排序 selectSort(a, 10); //遍历输出数组 for (int i=0; i<10; i++) { printf("%d\t",a[i]); } return 0; }
3 4 12 20 21 23 28 45 67 100
标签:
原文地址:http://www.cnblogs.com/kongweiiwei/p/4627683.html