毕业很久长时间了 ,突然发现冒泡排序都写不出来
public class SortName {
public static void main(String[] args) {
int[] intSort={5,76,2,33,55,11,400,555,933,10,3,5,33333333,5555,222222233};
//对一个数组进行排序
sortToArray(intSort);
}
/**
* @param intSort 需要排序的数组
* 数组排序算法 我一直记不清楚的 for循环应执行几次
* 这个可以把握住一点 也就是 外层控制循环只是控制 跑几趟 升序/降序 皆可
* 内层控制 相邻两个数进行比较 并且 并且第一趟即可确定 最后一个数 肯定是这个数组中最大的 依次类推
* 变能推算出 内层循环的次数与表达方式
* @since 2011-01-10
*/
private static void sortToArray(int[] intSort) {
/**
* 冒泡排序故名就是将小数往前排 大数往后排
* 首先比较第一个数与第二个数 如果将小的替换位置 在比较第二个与第三个数 再次替换位置
* 依次排序到最后 此时唯一能确定的是 最大的数 在最后一位 这样第一趟排序结束
*
* 第二趟开始:
* 首先再次比较 第一个数 与第二个数 如果大的 将依次往后推 这样只要排到倒数第二个数 即可停止
* 倒数 第一 与第二个数已经排序成功
*
* 第三趟开始 :
*
*
*/
// //外层控制跑几趟
// for (int i =intSort.length;i>0; i--) {
// //内层控制两个数从头开始 两两比较 并换位
// for (int j = 0; j < i-1; j++) {
// //如果第一个数大于第二个 这需要换位置
// /*第二个与第三个数比较*/
// /*第三个与第四个数比较*/
// /*如果是5个数 第一趟应该是要比较4次 i=5 ,j=4 int[4]被排序*/
// /*如果是5个数 第2趟应该是要比较前4个数据即可 也就是说需要比较3次 i=4 j=3 int[3]被排序 */
// /*如果是5个数 第3趟应该是要比较前3个数据即可 也就是说需要比较2次 i=2 j=2 int[2]被排序 */
// if (intSort[j]>intSort[j+1]) {
// int temp=intSort[j+1];
// intSort[j+1]=intSort[j];
// intSort[j]=temp;
// }
// }
// }
//外层控制跑几趟
for (int i =0;i<intSort.length; i++) {
//内层控制两个数从头开始 两两比较 并换位
for (int j = 0; j < intSort.length-1-i; j++) {
//如果第一个数大于第二个 这需要换位置
/*第二个与第三个数比较*/
/*第三个与第四个数比较*/
/*如果是5个数 第一趟应该是要比较4次 i=0,j=4 int[4]被排序*/
/*如果是5个数 第2趟应该是要比较前4个数据即可 也就是说需要比较3次 i=1 j=3 int[3]被排序 */
/*如果是5个数 第3趟应该是要比较前3个数据即可 也就是说需要比较2次 i=2 j=2 int[2]被排序 */
if (intSort[j]>intSort[j+1]) {
int temp=intSort[j+1];
intSort[j+1]=intSort[j];
intSort[j]=temp;
}
}
}
for (int i = 0; i < intSort.length; i++) {
System.out.print(intSort[i]+",");
}
}
}
===============================
===============================
下面看到一个 实现链表 插入 排序的代码 顺便Copy下来研究一下
Node head = null;
Node point = null;
Node newNode = null;
public int Count = 0;//统计值
//插入
public void AddNode(int t) {
newNode = new Node();
if (head == null) {
head = newNode;
} else {
point = head;
while (point.next != null) {
point = point.next;
}
point.next = newNode;
}
point = newNode;
point.vlaue = t;
point.next = null;
Count++;
}
//返回值
public int GetValue(int i) {
if (head == null || i < 0 || i > Count)
return -999999;
int n;
Node temp = null;
point = head;
for (n = 0; n <= i; n++) {
temp = point;
point = point.next;
}
return temp.vlaue;
}
//删除
public void DeleteNode(int i) {
if (i < 0 || i > Count) {
return;
}
if (i == 0) {
head = head.next;
} else {
int n = 0;
point = head;
Node temp = point;
for (n = 0; n < i; n++) {
temp = point;
point = point.next;
}
temp.next = point.next;
}
Count--;
}
//排序
public void Sotr() {
for (Node i = head; i != null; i = i.next) {
for (Node j = i.next; j != null; j = j.next) {
if (i.vlaue > j.vlaue) {
int t = i.vlaue;
i.vlaue = j.vlaue;
j.vlaue = t;
}
}
}
}
}
class Node {
int vlaue;
Node next;
}
分享到:
相关推荐
排序思维导图整理,插入排序、希尔排序、冒泡排序、选择排序、快速排序、堆排序、归并排序、基数排序,本思维导图整理了各排序方法的定义、时间复杂度、空间复杂度、稳定性,后期会整理出各排序方法对应的实现demo...
这个是整理好了的,各种排序方式,喜欢的同学可以看下,对于初学的人很有帮助
将多文件结构整理成了一个文件,可根据注释拆分多文件。
在这份文档中,我用C语言实现了排序算法的多种方法,包括插入排序、选择排序、冒泡排序、希尔排序、归并排序、快速排序、桶排序和基数排序。这些算法可以帮助我们对数据进行有效的排序和整理,以便更好地处理和分析...
1. 冒泡排序: 思路:对数组进行多轮冒泡,每一轮对数组中的元素两两比较,调整位置,冒出一个最大的数来。 //简单版: function bubbleSort($arr) { $n = count($arr); for($i=1;$i<$n;$i++) { //冒泡的轮数...
文档包含以下内容: 一 插入排序 二 冒泡排序 三 选择排序 四 Shell排序 五 快速排序 六 归并排序 七 堆排序 八 桶式排序 九 基数排序
1 使用随机算法生成100个随机数 2 使用各种排序算法进行排序。如冒泡 快速 直接插入 选择 归并 堆排序 shell排序等 3 打印出各个排序算法排序后的结果
php排序 ,插入排序,选择排序,冒泡排序,快速排序。 整理出来,供大家参考一下
文章目录6.4 冒泡排序的基础算法6.4.1 冒泡排序优化算法6.5二分法查找(折半检索) 6.4 冒泡排序的基础算法 冒泡排序是常用的排序算法,笔试中非常常见。 算法重复地走访过排序的数列,一次比较两个元素,如果他们的...
各类排序算法整理--C语言描述--本人编写 排序算法种类有: 冒泡 快速排序 堆排序 希尔排序 插入排序 选择排序 二路归并排序
冒泡排序(Bubble Sort)是一种简单的排序算法。本文重点给大家介绍java数据结构和算法之冒泡排序,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
复习用整理代码。包括直接插入排序、折半插入排序、希尔排序、冒泡排序、快速排序、简单选择排序、堆排序、归并排序。
冒泡排序、直接插入排序、堆排序、快速排序、希尔排序、简单选择排序排序, 在Microsoft Visual Studio 10.0运行通过
包括: 堆排序.swf 规并排序.swf 基数排序.swf 快速排序.swf 冒泡排序.swf 桶式排序法.swf 希尔排序.swf 直接插入排序.swf 直接选择排序.swf
常见的排序算法进行整理,包括:插入排序、选择排序、冒泡排序、快速排序、堆排序、归并排序、希尔排序、二叉树排序、计数 排序、桶排序、基数排序。
整理了几种常见的排序动态图和代码
收集整理了C语言中常用的经典排序方法(冒泡排序、选择排序、插入排序、希尔排序、快速排序、堆排序 )及动图演示 。
常见的十种排序算法(冒泡/选择/插入/计数/基数/堆/归并/快速/桶/希尔排序)
十大常用排序算法整理及C++实现。包括冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序,并对简要说明了算法步骤及相应的算法复杂度。
整理了一些算法,资源共享一下,有意见大家提哈