赞
踩
- #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;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。