几种简单的排序算法
2017-04-05 18:06
183 查看
冒泡排序:
每次外层循环都找到num[i]后面元素的最大的数值,并将这个数值存入num[i],原先num[i]存储的数值被移动到后面,这样等整个循环都结束,数组按照从大到小的顺序排列。
插入排序:
将数组前n个数已经按照顺序排列好,接下来将第n+1个数插入到这前n个数中间,直到把所有的数都插入完。
选择排序:
每次都将最小的元素放在num[i],然后i++,这样直到把整个数组遍历一遍,数组将按照从小到大的顺序排列。
快速排序:
每次外层循环都找到num[i]后面元素的最大的数值,并将这个数值存入num[i],原先num[i]存储的数值被移动到后面,这样等整个循环都结束,数组按照从大到小的顺序排列。
int num[10]={1,2,3,4,5,6,7,8,9,10}; int temp; for(int i=0;i<10;i++) { for(int j=i;j<10;j++) { if(num[i]<num[j]) { temp=num[i]; num[i]=num[j]; num[j]=temp; } } }
插入排序:
将数组前n个数已经按照顺序排列好,接下来将第n+1个数插入到这前n个数中间,直到把所有的数都插入完。
static void insertion_sort(int[] unsorted) { for (int i = 1; i < unsorted.Length; i++) { if (unsorted[i - 1] > unsorted[i]) { int temp = unsorted[i]; int j = i; while (j > 0 && unsorted[j - 1] > temp) { unsorted[j] = unsorted[j - 1]; j--; } unsorted[j] = temp; } } }
选择排序:
每次都将最小的元素放在num[i],然后i++,这样直到把整个数组遍历一遍,数组将按照从小到大的顺序排列。
for(int i=0; i<v.size(); i++) { int min = v[i]; int temp; int index = i; for(int j=i+1;j<v.size();j++) { if(v[j] < min) { min = v[j]; index = j; } } temp = v[i]; v[i] = min; v[index]= temp; }
快速排序:
void sort(int *a, int left, int right) { if(left >= right) { return ; } int i = left; int j = right; int key = a[left]; while(i < j) { while(i < j && key <= a[j]) { j--; } a[i] = a[j]; while(i < j && key >= a[i]) { i++; } a[j] = a[i]; } a[i] = key; sort(a, left, i - 1); sort(a, i + 1, right); }
相关文章推荐
- 几种简单的排序算法
- 001-简单的java代码实现几种排序算法(插入,快速,冒泡,选择)
- 几种排序算法的最简单实现方式
- 排序(一)——几种简单的排序算法
- 几种排序算法的最简单实现方式
- 几种常见简单排序算法
- 几种简单的排序算法
- C语言、Java学习笔记(三)---几种简单的排序算法
- 黑马程序员——Java基础语法:几种简单的排序算法的实现
- 几种简单的排序算法
- JavaScript中几种排序算法的简单实现
- 几种简单的排序算法一(冒泡、选择、插入、快速)python描述
- 排序(一)——几种简单的排序算法
- 几种简单的排序算法
- 几种简单的排序算法
- JavaScript中几种排序算法的简单实现
- 几种排序算法简单比较
- 几种排序算法的实现及简单分析
- 几种简单的排序算法
- Java中几种简单的排序算法