一日一码01——冒泡排序
来源:互联网 发布:dwg for mac 免费 编辑:程序博客网 时间:2024/05/21 04:24
一切成功都源于积累!
为痛下决心要改掉眼高手低的毛病,每天一道算法题!
先从最简单的冒泡排序开始吧。
//冒泡排序2013/09/06//从小到大排序#include <stdio.h>#include <stdlib.h>#include <time.h>#include <malloc.h>//每次把最后的数向前比较,小的数从后往前“冒泡”,下次比较仍从最后比起,前面已排序部分无需比较void soapSort(int* a, int n){int i,j,tmp,flag;for ( i = 0 ; i < n ; i++){flag = 0;for ( j = n - 1 ; j > i ; j-- ){if(a[j] < a[j-1]){tmp = a[j];a[j] = a[j-1];a[j-1] = tmp;flag = 1;}}if(flag == 0){return;}}}//每次把前面的数向后比较,大的数从前往后“冒泡”,下次比较仍从前面比起,后面已排序部分无需比较void soapSort2(int* a, int n){int i,j,tmp,flag;for ( i = 0 ; i < n ; i++){flag = 0;for ( j = 0 ; j < n-i-1 ; j++ ){if(a[j] > a[j+1]){tmp = a[j];a[j] = a[j+1];a[j+1] = tmp;flag = 1;}}if(flag == 0){return;}}}//错误方法,只是每次把最大的放到最后,前面的数实际上没有排序void soapSort_error(int* a, int n){int i,j,tmp,flag;for ( i = 0 ; i < n ; i++){flag = 0;for ( j = i ; j < n - 1; j++ ){if(a[j] > a[j+1]){tmp = a[j];a[j] = a[j+1];a[j+1] = tmp;flag = 1;}}if(flag == 0){return;}}}int initArr(int** a){int i,n;srand(time(NULL));printf("Input the size of array:");scanf("%d",&n);*a = (int *)malloc(n*sizeof(int));for(i = 0; i < n; i++){(*a)[i] = rand()%100; //*(*a+i) = rand()%100;}return n;}void printArr(int* a, int n){int i;for (i = 0;i < n; i++){printf("%d,",a[i]);}printf("\n");}void main(){int* arr;int n;n = initArr(&arr);//传地址printArr(arr,n);soapSort(arr,n);printArr(arr,n);}
- 一日一码01——冒泡排序
- Python一日一练07----冒泡排序
- 一日一码02——选择排序
- 一日一码03——插入排序
- 一日一码04——快速排序
- 一日一码06——堆排序
- 排序算法一——冒泡排序
- 一日一码05--希尔排序
- 排序(一)—直接插入排序+冒泡排序
- 一日一码07——链表
- 排序(一)冒泡排序、冒泡改进——鸡尾酒排序、选择排序
- C#排序算法(一)——冒泡排序
- 基础排序算法(一)——冒泡排序
- 排序算法(一)——冒泡排序及改进
- 排序算法自我练习(一)——冒泡排序
- 排序算法之——冒泡排序(一)
- (一)算法——冒泡排序、选择排序
- 排序算法(一)——冒泡排序及改进
- 实例解说Linux中fdisk分区使用方法
- Android 中的 Service 全面总结
- 64位系统下编译32位库
- framework目录编译进nexus手机的文件功能描述
- Solve Hibernate "Too many connections" issue in MySQL
- 一日一码01——冒泡排序
- Set Matrix Zeroes leetcode
- 第三部分 运用测试技术
- xcode4常用快捷键--不得不用xcode4了。
- 用JAMES实现自己的邮件服务器
- 本地文件上传、下载服务器文件事物码
- 为什么gridview 的数据不显示
- Linux进程间通信
- BroadCastReceiver详解