插入法、选择法、冒泡法(C++实现)

来源:互联网 发布:域名IP是什么意思 编辑:程序博客网 时间:2024/06/03 05:06
#include <stdio.h>#include <iostream>using namespace std;//插入法排序void InsertSort(int arr[],int num){for (int i=1;i<num;i++)  //需要插入num-1次{int temp = arr[i];//待插入的元素//在有序区域查找插入的位置int j = i-1;  //用于标志插入的位置for (j = i-1;j>=0;j--)  //遍历前面的有序区域,逐个比较,寻找插入的位置{if (arr[j]<temp)  //如果有序区域的数值比待比较的数值要小,则把有序区域的这个数值往后移动{arr[j+1] = arr[j]; //如果}else  //如果有序区域比较的这个数值大于或等于待插入的temp,说明该位置的后面就是要插入的位置,跳出循环{ break;   }}arr[j+1] = temp; }}//选择法排序void SelectSort(int arr[],int num){for (int i=0;i<num-1;i++)  //总共需要排序num-1次{int index = i; //index用于代表无序区最大值的索引for (int j = i+1;j<num;j++)  //遍历无序区域,找到无序区域最大值的索引{if (arr[j]>arr[index]){index = j;}}//把无序区的最大值放到无序区域的第一个位置if (index != i){int temp = arr[i];arr[i] = arr[index];arr[index] = temp;}}}//冒泡法排序void BubbleSort(int arr[],int num){for (int i=0;i<num-1;i++) //总共需要冒泡num-1次{for (int j=num-1;j>i;j--)  //从无序区中遍历冒泡{if (arr[j]>arr[j-1])  //交换顺序{int temp = arr[j];arr[j] = arr[j-1];arr[j-1] = temp;}}}}void PrintArray(int arr[],int num){for (int i=0;i<num;i++){cout<< arr[i] << " ";}}int main(){int arr[5] = {1,6,3,8,9};//InsertSort(arr,5);  //插入法排序//SelectSort(arr,5); //选择法排序BubbleSort(arr,5); //冒泡法排序PrintArray(arr,5);system("pause");return 0;}

阅读全文
0 0
原创粉丝点击